Global

  • :help keyword - open help for keyword
  • :o file - open file
  • :saveas file - save file as
  • :close - close current pane

커서 이동

  • h - 왼쪽으로 이동
  • j - 밑으로 이동
  • k - 위로 이동
  • l - 오른쪽으로 이동
  • H - move to top of screen
  • M - move to middle of screen
  • L - move to bottom of screen
  • w - 다음 단어의 선두로 점프
  • W - 다음 단어의 선두로 점프(구절문자 단어로 인식)
  • e - 현재 단어의 후미로 점프
  • E - 현재 단어의 후미로 점프(구절문자 단어로 인식)
  • b - 단어의 선두로 점프
  • B - 단어의 선두로 점프(구절문자 단어로 인식)
  • 0 - 행의 선두로 점프
  • ^ - 행의 선두 문자로 점프
  • $ - 행의 후미로 점프
  • g_ - jump to the last non-blank character of the line
  • gg - 문서의 첫번째 행으로 점프
  • G - 문서의 마지막 행으로 점프
  • 5G - 5번째 라인으로 점프
  • fx - 문자 x가 나타나는곳으로 이동
  • tx - 문자 x가 나타나는곳 앞으로 이동
  • } - 다음 단락(또는 함수/블락)으로 이동
  • { - 이전 단락(또는 함수/블락)으로 이동
  • zz - center cursor on screen
  • Ctrl + b - move back one full screen
  • Ctrl + f - move forward one full screen
  • Ctrl + d - move forward 1/2 a screen
  • Ctrl + u - move back 1/2 a screen
Tip 커서 이동 명령 앞에 숫자를 붙이면 그 수 만큼 반복. 예를 들어서, 4j 는 4행 아래로 이동.

삽입 모드 - 택스트를 삽입/추가

  • i - 커서 앞에 삽입/추가모드 시작
  • I - 행의 선두에서 삽입/추가모드 시작
  • a - 커서의 바로 뒤부터 삽입/추가모드 시작
  • A - 행의 마자막에 삽입/추가모드 시작
  • o - 현재행의 아래에 새 라인 추가, 입력/추가모드 시작
  • O - 현재행의 위에 새 라인 추가, 입력/추가모드 시작
  • ea - 현 단어의 마지막에 입력/추가모드 시작
  • Esc - 삽입 모드 종료

편집

  • r - 한 문자를 치환
  • J - 현재 행과 다음 행을 연결
  • cc - 현재행 전체를 새로 수정
  • cw - 현재의 단어를 치환
  • c$ - 현재 커서위치애서 행의 마지막까지 새로 수정
  • s - 한 문작 삭제후 삽입 모드 시작
  • S - 현재행 전체를 새로 수정(cc와 동일)
  • xp - 두 문자를 스홥.(잘라내기 붙여넣기 조합)
  • u - 되돌리기(undo)
  • Ctrl + r - 다시하기(redo)
  • . - 마지막 명령 다시실행

텍스트 선택(비쥬얼 모드)

  • v - 선택 모드 시작. 텍스트를 선택해서 명령을 실행(예를 들어 y 양크)
  • V - 행 단위 선택 모드 시작
  • o - 션택한 영역의 반대편까지 커서 이동
  • Ctrl + v - 블럭형태 선택 모드 시작
  • O - 블럭의 반대편 코너로 이동
  • aw - 단어 선택에 추가
  • ab - () 블럭 추가
  • aB - {} 블럭 추가
  • ib - () 블럭의 내부 추가
  • iB - {} 블럭의 내부 추가
  • Esc - 선택 모드 종료

선택 모드 명령

  • > - 선택 영역을 오른쪽 이동(shift)
  • < - 왼쪽 이동(shift)
  • y - 선택한 택스트를 양크(복사)
  • d - 선택한 텍스트를 삭제
  • ~ - 대소문자 반전

Registers

  • :reg - show registers content
  • "xy - yank into register x
  • "xp - paste contents of register x
Tip Registers are being stored in ~/.viminfo, and will be loaded again on next restart of vim.
Tip Register 0 contains always the value of the last yank command.

Marks

  • :marks - list of marks
  • ma - set current position for mark A
  • `a - jump to position of mark A
  • y`a - yank text to position of mark A

Macros

  • qa - record macro a
  • q - stop recording macro
  • @a - run macro a
  • @@ - rerun last run macro

잘라내기와 붙이기

  • yy - 현재행 양크(yank, 복사)
  • 2yy - 2줄 양크
  • yw - 단어를 양크
  • y$ - 현재행 마지막까지 양크
  • p - 커서 위치 뒤에 붙이기
  • P - 커서 위치 앞에 분이기
  • dd - 현재행 잘라내기
  • 2dd - 2줄 잘라내기
  • dw - 단어 잘라내기
  • D - 커서 위치에서 행의 마지막까지 잘라내기
  • d$ - 커서 위치에서 행의 마지막까지 잘라내기(D와 동일)
  • x - 한 문자 잘라내기

나가기

  • :w - 나가지 않고 저장
  • :w !sudo tee % - 나가지 않고 sudo로 현재파일 저장
  • :wq or :x or ZZ - 저장하고 나가기
  • :q - 저장하지 않고 나가기(저장하지 않은 수정이 있을 경우 실패)
  • :q! or ZQ - 저장하지 않고 나가기(저장하지 않은 수정이 있더라도 무시)

검색/치환

  • /pattern - 패턴 검색
  • ?pattern - 패턴 검색 전방으로
  • \vpattern - '마법' 패턴: 영문/숫자가 아닌 문자들은 정규식 심볼로 해석 (정규식 이스케이프 필요없음)
  • n - 같은 방향으로 다시 검색
  • N - 역방향으로 다시 검색
  • :%s/old/new/g - 파일 내 모든 old를 new로 치환
  • :%s/old/new/gc - 파일 내 모든 old를 new로 치환(확인)
  • :noh - 검색 매치의 하이라이트를 제거

다수 파일내 검색

  • :vimgrep /pattern/ {file} - 다수의 파일에서 패턴으로 검색
e.g. :vimgrep /foo/ **/*
  • :cn - 다음 매치로 이동
  • :cp - 이전 매치로 이동
  • :copen - 매치된 리스트를 새 창으로 열기

다수 파일 작업

  • :e file - 새 버퍼에서 파일 편집
  • :bnext or :bn - 다음 버퍼로 이동
  • :bprev or :bp - 앞 버퍼로 이동
  • :bd - 버퍼를 삭제(파일을 닫음)
  • :ls - 열려있는 모든 버퍼를 목록화
  • :sp file - 분할 윈도우에 새로운 버퍼의 새로운 파일을 열기
  • :vsp file - 세로 분활 윈도우에 새로운 버퍼에 새로운 파일을 열기
  • Ctrl + ws - 윈도우 분할
  • Ctrl + ww - 윈도우 스위치
  • Ctrl + wq - 윈도우 닫기
  • Ctrl + wv - 윈도우 세로로 분할
  • Ctrl + wh - 오른쪽 윈도우로 이동
  • Ctrl + wl - 왼쪽 윈도우로 이동
  • Ctrl + wj - 아래 윈도우로 이동
  • Ctrl + wk - 위 윈도우로 이동

  • :tabnew or :tabnew file - 새 탭으로 파일 열기
  • Ctrl + wT - 현재 윈도우를 새로운 탭으로 이동
  • gt or :tabnext or :tabn - 다음 탭으로 이동
  • gT or :tabprev or :tabp - 앞 탭으로 이동
  • #gt - n번 탭으로 이동
  • :tabmove # - 현재 탭을 n번째로 이동(0부터 시작)
  • :tabclose or :tabc - 현재 탭을 닫기
  • :tabonly or :tabo - 현재 탭 이외의 모든 탭 닫기
  • :tabdo command - 모든탭에 명령어 실행하기(e.g. :tabdo q - 열린 모든탭 닫기)