|  (1) 시작 | 
		
			| vi 파일 : vi를 시작하여 지정한 파일을 편집한다. vi -R 파일 : 지정한 파일을 읽기 전용으로 불러들인다.
 | 
		
			|  (2) 종료 | 
		
			| :wq : 데이터를 저장하고 종료한다. :q! : 데이터를 저장하지 않고 종료한다.
 | 
		
			|  (3) 이동 | 
		
			| h  : 커서를 한 칸 왼쪽으로 이동한다. j
  : 커서를 한 줄 아래로 이동한다. k
  : 커서를 한 줄 위로 이동한다. l
  : 커서를 한 칸 오른쪽으로 이동한다. 
  : 커서를 한 칸 왼쪽으로 이동한다. 
  : 커서를 한 칸 오른쪽으로 이동한다. - : 커서를 이전 줄의 처음으로 이동한다.
 + : 커서를 다음 줄의 처음으로 이동한다.
 
  : 커서를 다음 줄의 처음으로 이동한다. 0 : 커서를 현재 줄의 맨 앞으로 이동한다.
 $ : 커서를 현재 줄의 맨 끝으로 이동한다.
 ^ : 커서를 현재 줄의 공백이나 탭이 아닌 첫 글자로 이동한다.
 w, W : 커서를 다음 단어의 첫 글자로 이동한다.
 e, E : 커서를 다음 단어의 끝 글자로 이동한다.
 b, B : 커서를 이전 단어의 첫 글자로 이동한다.
 ( : 다음 문장의 처음으로 이동한다.
 ) : 이전 문장의 처음으로 이동한다.
 { : 다음 문단의 처음으로 이동한다.
 } : 이전 문단의 처음으로 이동한다.
 H : 커서를 화면 맨 위로 이동한다.
 M : 커서를 화면 중간으로 이동한다.
 L : 커서를 맨 아래로 이동한다.
 ^F : 한 화면 아래로 이동한다.
 ^B : 한 화면 위로 이동한다.
 n^F : n화면 아래로 이동한다.
 n^B : n화면 위로 이동한다.
 ^D : 반화면 아래로 이동한다.
 ^U : 반화면 위로 이동한다.
 n^D : n줄만큼 아래로 이동한다.
 n^U : n줄만큼 위로 이동한다.
 | 
		
		
			|  (4) 입력 | 
		
			| i : 입력 모드로 전환, 커서 위치 앞에서 글을 입력한다. a : 입력 모드로 전환, 커서 위치 뒤에서 글을 입력한다.
 I : 입력 모드로 전환, 현재 줄의 앞에 글을 입력한다.
 A : 입력 모드로 전환, 현재 줄의 끝에 글을 입력한다.
 o : 입력 모드로 전환, 현재 줄의 아래에 글을 입력한다.
 O : 입력 모드로 전환, 현재 줄의 위에 글을 입력한다.
 | 
		
		
			|  (5) 삭제 | 
		
			| x : 커서가 있는 문자를 삭제한다. X : 커서의 왼쪽 문자를 삭제한다.
 D : 커서부터 줄의 끝까지 삭제한다.
 dd : 현재 줄 전체를 삭제한다.
 dG : 커서부터 파일의 끝까지 삭제한다.
 d1G : 커서부터 파일의 맨 앞까지 삭제한다.
 :nd : n번째 줄을 삭제한다.
 :n, md : n번째 줄부터 m번째 줄까지 삭제한다.
 | 
		
			|  (6) 고치기 | 
		
			| r : 입력모드로 바뀌지 않고 한 글자만 변경한다. R : 입력하는 대로 겹쳐 써서 변경한다.
 s : 커서가 있는 위치의 한 글자를 지우고 거기서부터 글을 입력한다.
 S : 커서가 있는 행을 지우고 글을 입력한다.
 C : 커서의 위치로부터 줄 끝까지 지우고 거기서부터 글을 입력한다.
 cc : 커서가 있는 행을 지우고 글을 입력한다.
 ~ : 대, 소문자를 서로 바꾼다.
 u : 수정했던 마지막 명령을 취소한다.
 U : 현재 줄을 저장한다.
 . : 수정했던 마지막 명령을 반복한다.
 | 
		
		
			|  (7) 붙이기 | 
		
			| p : 마지막으로 지워진 내용을 커서의 뒤, 아래에 삽입한다. P : 마지막으로 지워진 내용을 커서의 앞, 위에 삽입한다.
 xp : 두 문자를 바꾼다.
 deep : 두 단어를 바꾼다.
 ddp : 두 줄을 바꿈
 | 
		
		
			|  (8) 복사와 이동 | 
		
			| :ncom : n줄을 m줄 밑에 복사해서 붙인다. :n, mcol : n줄부터 m줄까지 한 줄 밑에 복사해서 붙인다.
 nyy, nY : 커서에서 n줄을 복사한다.
 nyw : 커서에서 n단어만큼 복사한다.
 | 
		
		
			|  (9) 치환 | 
		
			| :s/원래내용/고칠내용/ : 현재 줄에서 원래 내용을 고칠 내용으로 치환한다. :ns/원래내용/고칠내용/ : n줄에서 원래 내용을 고칠 내용으로 치환한다.
 :n,ms/원래내용/고칠내용/ : n줄에서 m줄까지 원래 내용을 고칠 내용으로 치환한다.
 :%s/원래내용/고칠내용/ : 모든 줄의 원래 내용을 고칠 내용으로 치환한다.
 | 
		
		
			|  (10) 검색 | 
		
			| /단어 : 지정된 단어를 현재 위치에서 아래로 찾는다. / : 이전의 패턴에 대해 아래로 검색을 반복한다.
 ?단어 : 지정된 단어를 현재 위치에서 위로 찾는다.
 ? : 이전의 패턴에 대해 위로 검색을 반복한다.
 n : /나 ?명령에 대해 같은 방향으로 검색을 반복한다.
 N : /나 ?명령에 대해 반대 방향으로 검색을 반복한다.
 | 
		
		
			|  (11) 약어사용 | 
		
			| :ab short long : short를 long에 대한 약어로 변경한다. :ab : 현재 지정되어 있는 약어 목록을 표시한다.
 :una short : short를 약어에서 해제한다.
 | 
		
			|  (12) 줄의 병합, 분리 | 
		
			| r  : 문자를 새로운 줄로 변경한다. J : 커서를 중심으로 앞줄과 뒷줄을 한 줄로 합친다.
 :set wm=n : 오른쪽으로 n문자 위치에서 자동적으로 줄을 나눈다.
 | 
		
			|  (13) 데이터 읽기 | 
		
			| :nr 파일 : 파일의 내용을 n줄 다음에 삽입한다. :r 파일 : 파일의 내용을 현재의 줄 다음에 삽입한다.
 :nr !명령어 : 명령어의 결과를 n줄 다음에 삽입한다.
 :r !명령어 : 명령어의 결과를 현재의 줄 다음에 삽입한다.
 | 
		
			|  (14) 줄번호 | 
		
			| nG : 줄번호 n으로 바로 간다. 1G : 첫 줄로 간다.
 G : 파일의 마지막 줄로 간다.
 :map g lG : g가 lG와 같도록 매크로를 정의한다.
 | 
		
			|  (15) 파일 바꾸기 | 
		
			| :e 파일 : 현재 작성하고 있던 파일에서 지정한 파일로 바꾼다.(작성하고 있던 파일이 저장되어 있지 않으면 바뀌지 않음) :e! 파일 : 현재 작성하고 있던 파일이 저장이 되지 않았더라도 지정한 파일로 바꾼다.
 | 
		
			|  (16) 저장 | 
		
			| :w : 데이터를 저장한다. :w 파일 : 지정한 파일로 데이터를 저장한다.
 :w >> 파일 : 지정한 파일에 데이터를 추가한다.
 :w! : 읽기 전용일 경우 데이터를 강제로 저장한다.
 :w %.bak : 현재 파일 이름에 .bak를 붙여서 새로운 파일로 저장한다.
 :10,$ w 파일 : 10줄부터 끝까지 파일 이름으로 저장한다.
 :.,50 w 파일 : 현재 줄부터 50줄까지 파일 이름으로 저장한다.
 | 
		
			|  (17) 정규표현식을 사용하기 위한 특수기호 | 
		
			| . : 새로운 줄을 제외한 모든 단일 문자와 대응한다. * : 0 또는 그 이상의 선행 문자와 대응한다.
 ^ : 줄의 시작과 대응한다.
 $ : 줄의 끝과 대응한다.
 \< : 단어의 시작과 대응한다.
 \> : 단어의 끝과 대응한다.
 [ ] : 묶여진 문자중의 하나와 대응한다.
 [^ ] : 묶여진 문자를 제외한 아무것하고나 대응한다.
 \  : 이어지는 기호를 문자 그대로 해석한다.
 | 
		
			|  (18) 셸 명령 실행 | 
		
			| :!명령어 : vi를 중단하고 지정한 셸 명령을 실행한다. :!! : vi를 중단하고 이전의 셸 명령을 실행한다.
 :sh : vi를 중단하고 셸을 실행한다.
 :!csh : vi를 중단하고 새로운 C셸을 실행한다.
 | 
		
			|  (19) 데이터를 처리하기 위한 셸명령의 사용 | 
		
			| n!!명령어 : n번 줄에서 명령어를 실행한다. !m 명령어 : 커서부터 m까지 명령어를 실행한다.
 !m fmt : 커서부터 m까지 줄들을 형식에 맞춘다.
 | 
		
			|  (20) 시스템이 다운되었을 경우 되살리기 | 
		
			| vi -r : 되살릴 수 있는 모든 파일 이름을 보여준다. vi -r 파일 : vi를 시작하여 지정한 파일을 되살린다.
 | 
		
			|  (21) 화면보기 | 
		
			| ^l : 화면을 다시 뿌려준다.(= ^L) :set nu : 줄 번호를 표시해 준다.(= :set number)
 :set nonu : 줄 번호를 표시하지 않는다.(= :set nonumber)
 :set list : 탭은 ^I로 줄의 끝은 $로 표시한다.
 :set nolist : list 값을 취소한다.
 :set tabstop=n : 탭의 크기를 n으로 지정한다. 기본은 8이다.
 |