본문 바로가기
정보통신기술

리눅스에서 vim/vi 편집기 기본 명령어와 활용 방법

by 주니미 2024. 12. 8.

리눅스에서 vim/vi 편집기 기본 명령어와 활용 방법

리눅스에서 vim(또는 vi)는 매우 강력한 텍스트 편집기로, 개발자와 시스템 관리자가 자주 사용합니다. 아래는 vim/vi의 기본적인 명령어와 실전 활용 방법을 소개합니다.


1. vi/vim 시작하기

vi 파일명       # 파일을 vi로 열기
vim 파일명      # 파일을 vim으로 열기
  • 파일이 존재하지 않으면 새 파일을 생성하고 열립니다.

2. 모드 이해하기

vim은 3가지 모드로 동작합니다.

  1. 명령 모드: 기본 상태로, 명령 입력을 위한 모드.
  2. 입력 모드: 텍스트 입력이 가능한 모드.
  3. 명령 줄 모드: 파일 저장, 종료 등 명령을 실행.

모드 간 전환

  • 명령 모드 → 입력 모드: i, a, o 등 입력
  • 입력 모드 → 명령 모드: ESC
  • 명령 모드 → 명령 줄 모드: :

3. 기본 명령어

(1) 명령 모드에서 파일 탐색

  • 커서 이동:
    • h: 왼쪽
    • l: 오른쪽
    • j: 아래
    • k: 위
  • 단어 단위 이동:
    • w: 다음 단어로 이동
    • b: 이전 단어로 이동
  • 페이지 이동:
    • Ctrl+d: 아래로 스크롤
    • Ctrl+u: 위로 스크롤

(2) 텍스트 편집

  • 입력 모드 진입:
    • i: 커서 앞에서 입력
    • a: 커서 뒤에서 입력
    • o: 아래 줄에 새 줄 추가
  • 삭제:
    • x: 현재 커서 위치 문자 삭제
    • dw: 현재 단어 삭제
    • dd: 현재 줄 삭제
  • 복사/붙여넣기:
    • yy: 현재 줄 복사
    • p: 붙여넣기
  • 되돌리기:
    • u: 마지막 작업 되돌리기
    • Ctrl+r: 되돌리기 취소

(3) 검색

  • /검색어: 아래 방향으로 검색
  • ?검색어: 위 방향으로 검색
  • n: 다음 검색 결과로 이동
  • N: 이전 검색 결과로 이동

4. 명령 줄 모드 주요 명령어

  • :w: 파일 저장
  • :q: 편집기 종료
  • :wq: 저장 후 종료
  • :q!: 저장하지 않고 강제 종료
  • :set nu: 줄 번호 표시
  • :set nonu: 줄 번호 숨기기
  • :syntax on: 구문 강조 활성화

5. 실전 활용 팁

(1) 복잡한 작업을 빠르게

  • 특정 줄로 이동: :숫자
    :10   # 10번째 줄로 이동
    
  • 여러 줄 삭제: 숫자dd
    5dd   # 현재 줄 포함 아래 5줄 삭제
    
  • 빠르게 여러 줄 붙여넣기:
    5p    # 5번 붙여넣기
    

(2) 텍스트 치환

  • 한 줄에서 텍스트 치환:
    :s/기존문자열/새문자열/
    
  • 파일 전체에서 텍스트 치환:
    :%s/기존문자열/새문자열/g
    

(3) 매크로 활용

  • 매크로 녹화:
    1. q[a-z]: 매크로 시작 (a~z로 이름 지정)
    2. 작업 수행
    3. q: 녹화 종료
  • 매크로 실행:
    @[a-z]   # 저장한 매크로 실행
    

6. vim 설정 파일 커스터마이징

vim 기본 설정 파일 열기:

vim ~/.vimrc
  • 자주 사용하는 설정 추가:
    set number        # 줄 번호 표시
    syntax on         # 구문 강조 활성화
    set tabstop=4     # 탭 크기 설정
    set shiftwidth=4  # 자동 들여쓰기 크기
    set expandtab     # 탭을 공백으로 변환
    

7. vim으로 효율적으로 작업하는 습관

  • 학습:
    • vimtutor: vim의 공식 튜토리얼 실행
  • 생산성 향상:
    • 플러그인 활용 (예: NERDTree, vim-airline)
    • 단축키 익히기 (복사, 붙여넣기, 치환 등)

마치며

vim/vi는 초반에 배우기 어려워 보이지만, 한 번 익히면 생산성을 크게 높일 수 있는 도구입니다. 위의 기본 명령어를 익힌 후, 점차 고급 기능과 플러그인으로 확장해보세요. 특히 개발과 리눅스 관리에서 효율성을 극대화할 수 있습니다.