리눅스에서 기본 텍스트 편집기인 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 | 이전 탭으로 이동합니다. |