리눅스에서 기본 텍스트 편집기인 VIM의 기본 사용법에 대해 알아보겠습니다. 이 글은 VIM 텍스트 튜토리얼인 vimtutor를 바탕으로 작성되었습니다. CentOS에서 vimtutor을 이용하여 연습 할려면 아래 명령을 입력하시면 됩니다.
yum install vim-enhanced
vimtutor
커서 이동
| k | 위로 한칸 이동. 3k와 같이 숫자를 붙여 여러 글자 이동합니다. |
| j | 아래로 한칸 이동. 3j와 같이 숫자를 붙여 여러 글자 이동합니다. |
| h | 왼쪽으로 한칸 이동. 3h와 같이 숫자를 붙여 여러 글자 이동합니다. |
| l | 오른쪽으로 한칸 이동. 3l과 같이 숫자를 붙여 여러 글자 이동합니다. |
| w | 다음 단어로 이동. 3w와 같이 숫자를 붙여 여러 단어 이동합니다. |
| b | 단어 처음으로 이동. 3b와 같이 숫자를 붙여 여러 단어 이동합니다. |
| e | 단어 끝으로 이동. 3e와 같이 숫자를 붙여 여러 단어 이동합니다. |
| 0 | 줄 맨 앞으로 이동합니다. |
| ^ | 공백을 제외한 줄 맨 앞으로 이동합니다. |
| $ | 줄 맨 뒤로 이동합니다. |
| gg | 문서 시작으로 이동합니다. |
| G | 문서 끝으로 이동. 123G와 같이 줄번호를 붙여 원하는 줄 위치로 이동합니다. |
| Ctrl+G | 현재 커서 위치 보여줍니다. |
| Ctrl+F | 다음 페이지로 이동합니다. |
| Ctrl+B | 이전 페이지로 이동합니다. |
삽입 모드
| i | 현재 커서 위치에서 삽입 모드로 전환합니다. |
| I | 현재 줄 맨 앞에서 삽입 모드로 전환합니다. |
| a | 현재 커서 한칸 뒤에서 삽입 모드로 전환합니다. |
| A | 현재 줄 맨 뒤에서 삽입 모드로 전환합니다. |
| o | 현재 줄 아래에 한칸 삽입하고 삽입 모드로 전환합니다. |
| O | 현재 줄 위에 한칸 삽입하고 삽입 모드로 전환합니다. |
치환 모드
| R | 치환 모드로 전환합니다. |
| r | 한 글자만 치환합니다. |
비주얼 모드
비주얼 모드는 텍스트에 블록을 설정하여 각종 편집을 하는 모드입니다.
비주얼 모드에서 사용 할 수 있는 명령
| d | 선택 영역을 삭제합니다. |
| y | 선택 영역을 복사합니다. |
| :w [FileName] | 선택 영역을 [FileName]으로 저장합니다. |

삭제
| x | 한 글자 삭제. 3x와 같이 숫자를 붙여 여러 글자 삭제합니다. |
| d[Motion] | [Motion]에 커서 이동 명령을 함께 사용하여 글자 삭제. d2w는 두 단어 삭제. d$는 현재 커서에서 문장 끝까지 삭제합니다. |
| dd | 한줄 삭제. 3dd와 같이 숫자를 붙여 여러줄 삭제합니다. |
복사
| y[Motion] | [Motion]에 커서 이동 명령을 함께 사용하여 글자를 복사. y2w는 두 단어 복사. y$는 현재 커서에서 문장 끝까지 복사합니다. |
| yy | 한 줄 복사. 3yy와 같이 숫자를 붙여 여러줄 복사합니다. |
붙여넣기
| p | 현재 커서 아래쪽에 붙여 넣기 또는 현재 커서 글자 뒤에 붙여 넣기합니다. |
| P | 현재 커서 윗쪽에 붙여 넣기 또는 현재 커서 글자 앞에 붙여 넣기합니다. |
수정
| c[Motion] | [Motion]에 커서 이동 명령을 함께 사용하여 글자 삭제 후 삽입 모드로 전환. c2w는 두 단어 삭제 후 삽입 모드 전환. c$는 현재 커서에서 문장 끝까지 삭제 후 삽입 모드로 전환합니다. |
| cc | 한 삭제 후 삽입 모드로 전환. 3cc와 같이 숫자를 붙여 여러줄 삭제 후 삽입 모드로 전환합니다. |
실행 취소
| u | 실행 취소합니다. |
| U | 현재 줄에서 변경 된 내용 모두 취소합니다. |
| Ctrl+R | 실행 취소를 취소합니다 (Redo). |
검색과 치환
| % | 현재 커서가 위치의 괄호와 매칭되는 괄호로 이동합니다. |
| /[SearchString] | [SearchString]을 현재 커서에서 문서 끝으로 검색합니다. |
| ?[SearchString] | [SearchString]을 현재 커서에서 문서 처음으로 검색합니다. |
| n | 다음 문자열을 검색합니다. |
| N | 이전 문자열을 검색합니다. |
| :s/[old]/[new] | 첫번째 [old]를 [new]로 치환합니다. |
| :s/[old]/[new]/g | 현재 줄에 있는 [old] 전체를 [new]로 치환합니다. |
| :#,#s/[old]/[new]/g | 줄번호 # 사이에 있는 [old] 전체를 [new]로 치환합니다. |
| :%s/[old]/[new]/g | 문서내에 있는 [old] 전체를 [new]로 치환합니다. |
| :%s/[old]/[new]/gc | 문서내에 있는 [old] 전체를 [new]로 치환합니다. 치환 전 확인 메세지가 나옵니다. |
VIM 종료
| :qw | 저장 후 종료합니다. |
| :q! | 저장하지 않고 종료합니다. |
시스템 명령 실행
| :![SystemCommand] | [SystemCommand]를 실행하고 그 결과를 보여 줍니다. |
문서 저장과 불러오기
| :w | 현재 문서를 저장합니다. |
| :w [NewFileName] | [NewFileName]으로 현재 문서를 저장합니다. |
| :w >> [FileName] | [FileName]에 현재 문서 추가합니다. |
| :e [FileName] | [FileName]을 열어줍니다. |
| :e! [FileName] | 현재 수정 된 사항을 무시하고 새 파일을 열어줍니다. |
| :r [NewFileName] | [NewFileName]을 불러와서 현재 위치에 삽입합니다. |
탭으로 파일 열기
| :tabe [FileName] | 탭으로 [FileName] 열어줍니다. |
| gt | 다음 탭으로 이동. 3gt와 같이 숫자를 붙여 3번째 탭 위치로 이동합니다. |
| gT | 이전 탭으로 이동합니다. |