$ sudo apt -y install vim$ vim hello.txt : 파일이 없는 경우 생성(저장되지는 않음)
$ find . '*.txt' | vim - : - 일 시 stdin을 받음
| 명령어 | 설명 |
|---|---|
| a | 커서 한 칸 뒤에서 Insert 모드로 전환 |
| A | 행 끝에서 Insert 모드로 전환 |
| i | 커서 위치에서 Insert 모드로 전환 |
| I | 행 앞에서 Insert 모드로 전환 |
| o | 현재 행 밑에 새로운 행을 추가 후 Insert 모드로 전환 |
| O | 현재 행 위에 새로운 행을 추가 후 Insert 모드로 전환 |
| R | 글자가 덮어써지는 Replace 모드로 전환 |
| : | Command 모드로 전환 |
| v / V / Ctrl-V | Visual mode 시작 |
| 명령어 | 설명 |
|---|---|
| h / ← | 커서 왼쪽 이동 |
| j / ↓ | 커서 아래 이동 |
| k / ↑ | 커서 위로 이동 |
| l / → | 커서 우측 이동 |
| 0 | 행 맨 앞으로 커서 이동 |
| ^ | 행 맨 앞 문자열로 커서 이동 |
| $ | 행 맨 끝으로 커서 이동 |
| [#]gg | #번째 행으로 이동. #이 없으면 첫 행으로 이동 |
| [#]G | #번째 행으로 이동. #이 없으면 끝 행으로 이동 |
| Ctrl-B / PgUp | 한 페이지 위로 이동 |
| Ctrl-F / PgDn | 한 페이지 밑으로 이동 |
| Ctrl-U | 반 페이지 위로 이동 |
| Ctrl-D | 반 페이지 밑으로 이동 |
| w / e / b | 단어 단위로 이동 |
| W / E / B | 단어 의미 단위로 이동 |
| ( / ) | 문단 단위로 이동 |
| [[ / ]] | 블록 단위로 이동 |
| 명령어 | 설명 |
|---|---|
| x | 커서 문자 삭제 (Delete키와 동일) |
| dd | 행 삭제 |
| D | 커서부터 행 끝까지 삭제 |
| yy / Y | 현재 행 복사 |
| p | 현재 커서 뒤에 붙임, 행을 붙이는 경우 현재 행 밑에 붙임 |
| P | 현재 커서 앞에 붙임, 행을 붙이는 경우 현재 행 위에 붙임 |
| J | 아래 행을 현재 행 끝에 붙임 |
| u | Undo |
| Ctrl-R | Redo |
| . | 이전 명령/입력 반복 |
| 명령어 | 설명 |
|---|---|
| fc | 오른쪽으로 c를 검색 |
| Fc | 왼쪽으로 c를 검색 |
| ; | 최근 검색 재실행 |
| , | 최근 검색을 반대 방향으로 재검색 |
| 명령어 | 설명 |
|---|---|
| /expression | expression을 전방 탐색 |
| ?expression | expression을 후방 탐색 |
| * | 현재 커서에 있는 단어를 전방 탐색 |
| # | 현재 커서에 있는 단어를 후방 탐색 |
| n | 다음 탐색 |
| N | 이전 탐색 |
| 명령어 | 설명 |
|---|---|
| ZZ | up+quit : 변경사항 있을시 저장 / 종료 |
| Ctrl-G | 현재 문서 위치 정보를 밑에 표시 |
| ~ | 대소문자 스위치 |
| % | 괄호 짝 찾기 |
| Ctrl-A | 숫자 1증가 |
| Ctrl-X | 숫자 1감소 |
| 명령어 | 설명 |
|---|---|
| v | 현재 커서 위치에서 블럭 지정 |
| V | 현재 행부터 블럭 지정 |
| Ctrl-V | column 단위 블럭 지정 |
| gv | 이전 하이라이트 |
| o | 시작점/끝점 바꾸기 |
| 명령어 | 설명 |
|---|---|
| I | 모든 행에 앞에 문자열 삽입 |
| A | 모든 행 앞에 문자열 삽입 |
| c | 문자열 치환 |
| d | 블럭 삭제 |
| y | 블럭 복사 |
| Esc x 2 | 편집 종료 |
! 가 있으면 warning 무시하고 한다는 뜻| 명령어 | 설명 |
|---|---|
| :num | num 행으로 이동 |
| :d | 행 삭제 |
| :y | 현재 행 복사 |
| :pu | 현재 커서에 붙임 |
| :file | 현재 문서 위치 정보를 밑에 표시 |
| 명령어 | 설명 |
|---|---|
| :w | 현재파일에 저장 |
| :w [filename] | filename으로 사본 저장 뒤 filename으로 편집 |
| :sav filename | filename으로 저장, 편집은 원본 파일에 그대로 |
| :up | 변경 사항 있을시만 저장 |
| :q | 종료 |
| :x | up+q |
| :a | 모든 파일에 대하여, 다른 명령어랑 같이 씀 |
| 명령어 | 설명 |
|---|---|
| :20d | 20번째 행 삭제 |
| :10,25d | 10~25번째 행 삭제 |
| :10,$d | 10행에서 마지막 행까지 삭제 |
| :%d | 전체 행 삭제 |
| :.,+20d | 현재 행부터 20행 삭제 |
| :-10,+5d | 현재 행 위로 10행부터 밑으로 5행 삭제 |
:[range]s/<찾는 문자열>/<교체할 문자열>/<옵션>| 옵션 | 설명 |
|---|---|
| g | 검색된 모든 문자열을 교체(옵션 없을시 처음 1개만 교체) |
| i | 검색시 대소문자 무시 |
| c | 매 교체마다 y/n 묻기 |
| e | 교체 과정 중 에러 무시 |
| 옵션 | 설명 |
|---|---|
| :center # | 너비가 #인 가운데 정렬 (기본값 80) |
| :left # | # 이후 왼쪽 정렬 |
| :right # | 너비가 #인 오른쪽 정렬 (기본값 80) |
| 명령어 | 설명 |
|---|---|
| :set | 현재 옵션 보기 |
| :set all | 모든 옵션 보기 |
| :set [no]option | 옵션 on/off |
| :set option! | 옵션 on/off toggle |
| :set option=value | 옵션 값 지정 |
| 명령어 | 설명 |
|---|---|
| nu | 행 번호 표시 |
| rnu | 현재 행을 기준으로 행 번호 표시 |
| ai | 자동 들여쓰기 |
| cindent | C언어 스타일 들여쓰기 |
| ts=value | 탭 너비 |
| sw=value | 블록 이동 너비 |
| hls | 검색시 하이라이트 기능 |
| fencs=value | 지원할 파일 인코딩 리스트( ,로 space없이 구분) |
| fenc=value | 현재 파일 인코딩 방식 |
| 명령어 | 설명 |
|---|---|
| :help x | Normal mode에서 x에 대한 도움말 |
| :i_CTRL-N | Insert mode에서 Ctrl-N에 대한 도움말 |
| :help :w | Command mode에서 :w에 대한 도움말 |
| :help v_u | Visual mode에서 u에 대한 도움말 |
| :help -r | vim command시 옵션 -r에 대한 도움말 |
| :help 'tabstop' | option tabstop 에 대한 도움말 |
| 명령어 | 설명 |
|---|---|
| Ctrl-] | 하이퍼링크로 이동 |
| Ctrl-T | 하이퍼링크 복귀 |
| :tags | 이동한 하이퍼링크 목록 |