Vim 명령어 가이드

모드 종류

  • Normal 모드: 기본 모드로, 텍스트 탐색과 명령 실행에 사용된다.
  • Inset 모드: 텍스트 입력에 사용된다.
  • Visual 모드: 텍스트 블록 선택 및 수정 작업에 사용된다.

명령어 기본 구조

[횟수] 명령 대상
또는
명령 [횟수] 대상

모드 전환

  • i → Insert 모드로 전환 (커서 앞)
  • Shift + i → Insert 모드로 전환 (줄의 맨 앞)
  • a → Insert 모드로 전환 (커서 뒤)
  • Shift + a → Insert 모드로 전환 (줄의 맨 뒤)
  • Esc → Normal 모드로 돌아가기
  • v → Visual 모드 (텍스트 선택)
  • :q → 저장하지 않고 종료
  • :q! → 저장하지 않고 강제 종료
  • :w → 파일 저장
  • :w! → 파일 강제 저장
  • :wq → 저장하고 종료
  • :wq! → 강제 저장하고 종료
  • u → 마지막 명령 실행 취소 (undo)
  • Shift + u → 해당 줄을 원래 상태로 복귀
  • Ctrl + r → undo 취소 (redo)
  • . → 이전 명령 반복

커서 이동

  • h, j, k, l → 왼쪽, 아래, 위, 오른쪽 이동
  • 0 → 줄의 맨 앞으로 이동
  • $ → 줄의 맨 끝으로 이동
  • gg → 파일의 맨 위로 이동
  • Shift + g → 파일의 맨 아래로 이동
  • :n 또는 nG → n번째 줄로 이동 (예: :10, 10G → 10번째 줄)
  • w → 다음 단어의 시작으로 이동
  • nw → n단어 앞으로 이동
  • b → 이전 단어의 시작으로 이동
  • e → 현재 단어의 끝으로 이동
  • Shift + h → 화면의 맨 위로 이동
  • Shift + m → 화면의 중간으로 이동
  • Shift + l → 화면의 맨 아래로 이동
  • Ctrl + u → 위로 스크롤
  • Ctrl + d → 아래로 스크롤
  • { → 문단 시작으로 이동
  • } → 문단 끝으로 이동
  • 괄호 위에서 % → 괄호 짝으로 이동

복사, 붙여넣기, 삭제

  • yy → 현재 줄 복사
  • p → 붙여넣기
  • *p → 클립보드 붙여넣기
  • dd → 현재 줄 삭제 (잘라내기)
  • 2dd → 두 줄 삭제
  • x → 커서 위치의 문자 삭제
  • d$ → 커서부터 줄 끝까지 삭제
  • v → Visual 모드로 선택 후 y → 복사
  • Shift + v → 현재 줄 선택 후 y → 복사
  • daw → 한 단어 삭제
  • d3w → 세 단어 삭제
  • dit → 태그 안 내용 삭제
  • di{{} 내부 삭제
  • da(()와 내용 삭제
  • "_x → 저장하지 않고 문자 삭제

검색, 선택, 수정

  • /검색어 → 검색
  • ?검색어 → 뒤로 검색
  • n → 다음 검색 결과로 이동
  • N → 이전 검색 결과로 이동
  • Ctrl + v → Visual Block 모드
  • Shift + v → 현재 줄 선택
  • r → 문자 수정
  • ce → 커서부터 단어 끝까지 삭제하고 Insert 모드로 전환
  • c$ → 커서부터 줄 끝까지 삭제하고 Insert 모드로 전환
  • Ctrl + v → Visual Block 모드로 선택 후 Shift + i → Insert 모드로 전환
  • :s/old/new → 현재 줄에서 oldnew로 수정
    • :%s/old/new/g → 파일 전체에서 수정
    • :#,#s/old/new/g → 두 줄 #,# 사이에서 oldnew로 수정 (#은 줄번호, 포함)
    • c 옵션 추가 (:%s/old/new/gc) → 확인 후 수정

매크로

매크로를 사용하면 반복 작업을 자동화할 수 있다.

  1. 매크로 녹화
    • q + 매크로 이름 (예: qaa에 매크로 저장 시작)
    • 명령어 입력 (반복할 작업 수행)
    • q → 매크로 녹화 종료
  2. 매크로 실행
    • @ + 매크로 이름 (예: @aa 매크로 실행)
    • @@ → 마지막 실행한 매크로 재실행
    • n@a → 매크로를 n번 반복 실행

예시: 매크로로 줄 끝에 ; 추가하기

qa        " 매크로 녹화 시작 (a에 저장)
$         " 줄 끝으로 이동
A;        " 줄 끝에 ; 추가 (Insert 모드)
<Esc>     " Normal 모드로 돌아감
q         " 매크로 녹화 종료
@a        " 매크로 실행
5@a       " 매크로를 5번 반복 실행