SHORTCUT LIBRARY
Vi 단축키
출처: docs/Vi ShortcutKey-latest.docx
명령 모드에서는 명령을 입력하고, 입력 모드에서는 Esc를 눌러 명령 모드로 돌아갑니다.
| 기능 | 단축키 | 주의 사항 |
|---|---|---|
| 현재 위치부터 입력 | a | 커서 다음 칸부터 입력 모드로 전환합니다 (append). |
| 줄 끝부터 입력 | A | 현재 줄 끝에서 입력 모드로 전환합니다. |
| 현재 위치부터 입력 | i | 커서 위치부터 입력 모드로 전환합니다 (insert). |
| 줄 처음부터 입력 | I | 현재 줄 맨 앞에서 입력 모드로 전환합니다. |
| 아래에 새 줄을 만들고 입력 | o | 커서 바로 아래에 줄을 열고 입력 모드로 전환합니다. |
| 위에 새 줄을 만들고 입력 | O | 커서 바로 위에 줄을 열고 입력 모드로 전환합니다. |
| 한 칸 왼쪽/오른쪽 이동 | h / l | h는 왼쪽, l은 오른쪽으로 이동합니다. |
| 한 줄 아래/위로 이동 | j / k | j는 아래, k는 위로 이동합니다. |
| 다음 단어의 첫 글자로 이동 | w 또는 W | 다음 단어의 첫 글자로 이동합니다. |
| 이전 단어의 첫 글자로 이동 | b 또는 B | 이전 단어의 첫 글자로 이동합니다. |
| 단어의 마지막 글자로 이동 | e 또는 E | 현재 또는 다음 단어의 마지막 글자로 이동합니다. |
| 줄의 첫 글자/마지막 글자로 이동 | ^ / $ | ^는 줄의 첫 글자, $는 줄의 마지막 글자로 이동합니다. |
| 줄의 처음으로 이동 | 0 | 현재 줄의 맨 처음으로 이동합니다. |
| 다음 줄의 첫 글자로 이동 | <CR> 또는 + | 다음 줄의 첫 글자로 이동합니다. |
| 윗줄의 첫 글자로 이동 | - | 윗줄의 첫 글자로 이동합니다. |
| 이전/다음 문장의 첫 글자로 이동 | ( / ) | (는 이전 문장, )는 다음 문장으로 이동합니다. |
| 이전/다음 문단으로 이동 | { / } | {는 이전 문단, }는 다음 문단으로 이동합니다. |
| 커서 위치의 한 글자 교체 | r | 커서 위치의 글자 하나를 교체합니다. |
| 연속 글자 덮어쓰기 | R | Esc를 누를 때까지 입력한 글자로 덮어씁니다. |
| 글자 하나를 여러 글자로 교체 | s 또는 cl | 커서 위치의 글자 하나를 여러 글자로 바꿉니다. |
| 앞 글자 하나를 여러 글자로 교체 | ch | 커서 바로 앞의 글자를 여러 글자로 바꿉니다. |
| 단어 교체 | cw | 커서 위치부터 한 단어를 교체합니다. |
| 줄 처음까지 교체 | c0 | 커서 위치부터 줄 처음까지 교체합니다. |
| 줄 끝까지 교체 | C 또는 c$ | 커서 위치부터 줄 끝까지 교체합니다. |
| 현재 줄 교체 | cc | 현재 줄 전체를 교체합니다. |
| 현재 줄과 다음 줄 교체 | cj | 현재 줄과 바로 아래 줄을 교체합니다. |
| 현재 줄과 윗줄 교체 | ck | 현재 줄과 바로 위 줄을 교체합니다. |
| 현재 글자 삭제 | x 또는 dl | 커서 위치의 글자를 삭제합니다. |
| 앞 글자 삭제 | X 또는 dh | 커서 바로 앞의 글자를 삭제합니다. |
| 단어 삭제 | dw | 커서 위치의 단어를 삭제합니다. |
| 줄 처음까지 삭제 | d0 | 커서 위치부터 줄 처음까지 삭제합니다. |
| 줄 끝까지 삭제 | D 또는 d$ | 커서 위치부터 줄 끝까지 삭제합니다. |
| 현재 줄 삭제 | dd | 현재 줄 전체를 삭제합니다. |
| 현재 줄과 다음 줄 삭제 | dj | 현재 줄과 바로 아래 줄을 삭제합니다. |
| 현재 줄과 윗줄 삭제 | dk | 현재 줄과 바로 위 줄을 삭제합니다. |
| 단어 끝까지 복사 | yw | 커서 위치부터 단어 끝까지 복사합니다. |
| 줄 처음까지 복사 | y0 | 커서 위치부터 줄 처음까지 복사합니다. |
| 줄 끝까지 복사 | y$ | 커서 위치부터 줄 끝까지 복사합니다. |
| 현재 줄 복사 | yy | 현재 줄 전체를 복사합니다. |
| 현재 줄과 다음 줄 복사 | yj | 현재 줄과 바로 아래 줄을 복사합니다. |
| 현재 줄과 윗줄 복사 | yk | 현재 줄과 바로 위 줄을 복사합니다. |
| 커서 다음 위치에 붙여넣기 | p | 복사하거나 삭제한 내용을 커서 다음 위치에 붙여넣습니다. |
| 커서 위치에 붙여넣기 | P | 복사하거나 삭제한 내용을 커서 위치에 붙여넣습니다. |
| 작업 취소 | u | 마지막 작업을 취소합니다 (undo). |
| 현재 줄의 작업 모두 취소 | U | 현재 줄에 행해진 작업을 모두 취소합니다. |
| 작업 재실행 | Ctrl + r | 취소한 작업을 재실행합니다 (redo). |
| 마지막 명령 반복 | . | 조금 전에 실행한 명령을 반복합니다. |
| 현재 줄과 아래 줄 연결 | J | 현재 줄과 바로 아래 줄을 연결합니다. |
| 대소문자 전환 | ~ | 커서 위치의 대문자를 소문자로, 소문자를 대문자로 바꿉니다. |
| 짝이 맞는 괄호로 이동 | % | 괄호의 반대쪽 짝으로 이동합니다. |
| 화면 다시 그리기 | Ctrl + l | 현재 화면을 지우고 다시 그립니다. |
| 파일 정보 표시 | Ctrl + g | 현재 파일에 관한 정보를 표시합니다. |
| 화면 위/가운데/아래로 이동 | H / M / L | 커서를 화면의 맨 위, 중앙, 맨 아래로 이동합니다. |
| 현재 줄을 화면 위/가운데/아래에 배치 | z<CR> / z. / z- | 현재 줄을 화면의 위, 중앙, 아래에 배치합니다. |
| 화면의 위/아래에서 n번째 줄로 이동 | [n]H / [n]L | 화면 위쪽 또는 아래쪽에서 지정한 줄로 이동합니다. |
| 반 화면 위/아래로 스크롤 | Ctrl + u / Ctrl + d | 화면을 반 페이지 위 또는 아래로 스크롤합니다. |
| 한 화면 위/아래로 스크롤 | Ctrl + b / Ctrl + f | 화면을 한 페이지 위 또는 아래로 스크롤합니다. |
| 문서 처음/마지막 줄로 이동 | gg 또는 1G / G | gg 또는 1G는 처음, G는 마지막 줄로 이동합니다. |
| 지정한 줄로 이동 | [n]G | 문서의 n번째 줄로 이동합니다. |
| 현재 위치를 a로 표시 | ma | 현재 위치에 a라는 마크를 설정합니다. |
| 마크 a로 이동 | `a | 마크 a가 지정된 정확한 위치로 이동합니다. |
| 마크 a가 있는 줄의 처음으로 이동 | 'a | 마크 a가 있는 줄의 시작 위치로 이동합니다. |
| 직전 커서 위치로 이동 | `` | 직전 커서 위치로 돌아갑니다. |
| 직전 커서 줄의 처음으로 이동 | '' | 직전에 커서가 있던 줄의 처음으로 이동합니다. |
| 아래 방향으로 패턴 검색 | /[pattern]<CR> | 현재 위치부터 문서 아래 방향으로 검색합니다. |
| 위 방향으로 패턴 검색 | ?[pattern]<CR> | 현재 위치부터 문서 위 방향으로 검색합니다. |
| 같은 방향으로 다음 검색 결과 | n | 마지막 검색 방향으로 다음 결과를 찾습니다. |
| 반대 방향으로 다음 검색 결과 | N | 마지막 검색 방향의 반대쪽에서 결과를 찾습니다. |
| 현재 줄의 첫 old를 new로 교체 | :s/old/new<CR> | 현재 줄에서 처음 일치하는 old를 교체합니다. |
| 현재 줄의 모든 old를 new로 교체 | :s/old/new/g<CR> | 현재 줄의 모든 일치 항목을 교체합니다. |
| 1~20번째 줄에서 모두 교체 | :1,20s/old/new/g<CR> | 1번째 줄부터 20번째 줄까지 교체합니다. |
| 커서 기준 줄 범위에서 교체 | :-2,+4s/old/new/g<CR> | 커서 위 2줄부터 아래 4줄까지 교체합니다. |
| 문서 전체에서 모두 교체 | :%s/old/new/g<CR> | 문서 전체의 old를 new로 바꿉니다. |
| 문서 전체에서 확인하며 교체 | :%s/old/new/gc<CR> | 각 일치 항목을 확인한 뒤 교체합니다. |
| 패턴이 있는 줄에서 문자열 교체 | :g/pattern/s/old/new/g<CR> | pattern이 포함된 모든 줄에서 old를 new로 교체합니다. |
| 패턴이 있는 줄의 검색 결과 교체 | :g/pattern/s//new/g<CR> | 패턴이 있는 줄에서 이전 검색어를 new로 교체합니다. |
| Vi 종료 | :q<CR> | Vi를 종료합니다. |
| 현재 문서 저장 | :w<CR> | 편집 중인 문서를 저장합니다. |
| 다른 이름으로 저장 | :w [file]<CR> | 편집 중인 문서를 지정한 파일로 저장합니다. |
| 파일에 덧붙여 저장 | :w >> [file]<CR> | 편집 중인 문서를 지정한 파일 뒤에 덧붙입니다. |
| 파일 불러오기 | :e [file]<CR> | 지정한 파일을 불러옵니다. |
| 이전 파일 불러오기 | :e#<CR> | 이전에 편집하던 파일을 불러옵니다. |
| 현재 파일 다시 불러오기 | :e%<CR> | 현재 파일을 다시 불러와 저장하지 않은 작업을 취소합니다. |
| 파일 내용을 커서 위치에 삽입 | :r [file]<CR> | 지정한 파일 내용을 커서 위치에 삽입합니다. |
| 옵션 켜기 | :set [option]<CR> | 지정한 옵션을 활성화합니다. |
| 옵션 끄기 | :set [nooption]<CR> | 지정한 옵션을 비활성화합니다. |
| 외부 명령 실행 | :![command]<CR> | Vi 안에서 외부 명령을 실행합니다. |
| 명령 실행 결과 삽입 | :r ![command]<CR> | 외부 명령의 실행 결과를 문서에 삽입합니다. |
| 줄 처음을 나타내는 정규식 | ^ | 검색에서 줄의 처음을 나타냅니다. |
| 줄 끝을 나타내는 정규식 | $ | 검색에서 줄의 끝을 나타냅니다. |
| 임의의 한 글자를 나타내는 정규식 | . | 검색에서 임의의 한 글자를 나타냅니다. |
| 문자 집합 정규식 | [...] | 대괄호 사이에 지정한 문자 중 하나와 일치합니다. |
| 앞 문자 반복 정규식 | * | 앞의 내용이 0회 이상 반복되는 경우와 일치합니다. |
| 반복 횟수 범위 정규식 | \{min,max\} | 앞의 내용이 min회 이상 max회 이하 반복되는 경우와 일치합니다. |