(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이다. |