http://shagall.tistory.com/202
< VI 명령어 모음>
| 
 문서의 처음으로 : 1gg 한페이지 뒤로 : ctrl + b 한라인의 처음으로 : shift + 6 (혹은 0) 한줄 위로 : k 한칸 뒤로 : h                          한칸 앞으로 : l (소문자 L) 한줄 아래로 : j 한페이지 앞으로 : ctrl + f 한라인의 끝으로 : shift + 4 문서의 끝으로 : shift + g 매치되는 괄호찾기 : shift + 5 단어 삭제 : dw 한줄 삭제 : dd 빈줄삭제 : J 커서의 위치로부터 오른쪽의 문자를 모두 지운다. : D   가장 최근의 `/'|`?' 를 반복한다 : n n 을 반대방향으로의 수행. : N   작업 취소 : u 한줄 복사 : yy, Y 붙여 넣기 : p 블럭지정 라인단위 Visual Mode : shift + v 블럭단위 Visual Mode : ctrl + v  | 
 화면분할 수평 분할 : ctrl + w + n 수직 분할 : ctrl + w + v 창 삭제 CTRL+w q : 커서가 있는 창을 닫음 CTRL+w o : 현재 커서가 있는 창을 제외한 모든 창을 닫음 (단, 수정이 안된 창들만 닫힘)   창 이동 CTRL+ww : 창 간에 이동 CTRL+wh : 왼쪽(h) 창으로 이동 CTRL+wl : 오른쪽(l) 창으로 이동 CTRL+wj : 상단(j) 창으로 이동 CTRL+wk : 하단(k) 창으로 이동   창 크기 조절 CTRL+w = : 모든 창의 크기를 균등하게함 CTRL+w [N]+ : 창의 크기를 N행만큼 증가 CTRL+w [N]- : 창의 크기를 N행만큼 감소 CTRL+w [N]> : 창의 크기를 오른쪽으로 N칸만큼 증가 CTRL+w [N]< : 창의 크기를 왼쪽으로 N칸만큼 증가  | 
저장 및 종료
| 
 명령어  | 
 설명  | 
| 
 :w  | 
 저장  | 
| 
 :w file.txt  | 
 file.txt 파일로 저장  | 
| 
 :w >> file.txt  | 
 file.txt파일에 덧붙여서 저장  | 
| 
 :q  | 
 vi종료(저장이 안됐을시 경고)  | 
| 
 :q!  | 
 vi강제 종료(경고 무시)  | 
| 
 :wq!  | 
 강제 저장 후 종료  | 
| 
 :e file.txt  | 
 file.txt파일을 불러옴  | 
| 
 :e  | 
 현재 파일을 불러옴  | 
입력모드 전환
| 
 명령어  | 
 설명  | 
| 
 a  | 
 커서위치 다음 칸부터 입력  | 
| 
 i  | 
 커서의 위치에 입력  | 
| 
 o  | 
 커서의 다음 행에 입력  | 
| 
 s  | 
 커서 위치의 한 글자를 지우고 입력  | 
이동
| 
 명령어  | 
 설명  | 
| 
 h  | 
 왼쪽으로 이동  | 
| 
 l  | 
 오른쪽으로 이동  | 
| 
 j  | 
 아래 행으로 이동  | 
| 
 k  | 
 위 행으로 이동  | 
| 
 w  | 
 다음 단어의 첫 글자로 이동  | 
| 
 b  | 
 이전 단어의 첫 글자로 이동  | 
| 
 ^  | 
 그 행의 첫 글자로 이동 Home키와 동일  | 
| 
 $  | 
 그 행의 마지막 글자로 이동 End키와 동일  | 
| 
 gg  | 
 문서의 맨 첫 행으로 이동  | 
| 
 G  | 
 문서의 맨 마지막 행으로 이동  | 
| 
 :n  | 
 n행으로 이동 (여기서 n은 숫자임)  | 
삭제
| 
 명령어  | 
 설명  | 
| 
 x  | 
 커서 위치의 글자 삭제  | 
| 
 dw  | 
 한 단어를 삭제  | 
| 
 dd  | 
 커서가 있는 행을 삭제  | 
복사 & 붙이기
| 
 명령어  | 
 설명  | 
| 
 yy  | 
 커서가 위치한 한 행 복사  | 
| 
 p  | 
 붙여넣기  | 
| 
 Nyy  | 
 N행만큼 복사 (N은 숫자임)  | 
| 
 Np  | 
 N번만큼 붙여넣기 (N은 숫지임)  | 
블록 지정 관련
| 
 명령어  | 
 설명  | 
| 
 v  | 
 블록 지정 (v를 누른후 h j k l을 통해 블록 지정)  | 
| 
 y  | 
 복사  | 
| 
 d  | 
 잘라내기  | 
| 
 U  | 
 대문자로 만듬  | 
| 
 u  | 
 소문자로 만듬  | 
문자열 탐색 및 치환
| 
 명령어  | 
 설명  | 
| 
 /문자열  | 
 문자열을 탐색  | 
| 
 :%s/old/new/g  | 
 문서 전체에서 old를 new로 교체  | 
파일 버퍼 관련 명령 요약
| 
 명령어  | 
 설명  | 
| 
 :ls  | 
 버퍼의 내용을 나열  | 
| 
 :bN  | 
 N번 버퍼로 이동(N은 숫자임)  | 
| 
 :bwN  | 
 N번 버퍼를 완전 삭제(N은 숫자며, 없으면 현재의 버퍼삭제)  | 
*여러 파일을 편집하는 방법
$vi file1.c file2.c file.3c 또는 vi *.c
버퍼 1에 file1.c가 들어가고 버퍼 2,3에 각각 file2.c file3.c가 들어가며
vim 명령어 모드에서 :b2를 입력하면 file2.c가 열리게 된다.
마킹 및 마킹한 위치로 이동
| 
 명령어  | 
 설명  | 
| 
 ma  | 
 a로 마킹, mb는 b로 마킹  | 
| 
 ‘a  | 
 a로 마킹된 위치로 돌아감 ‘c는 c로 마킹된 위치로 돌아감  |