요약2
1. vi의 동작 모드
vi는 명령 모드와 입력 모드, 마지막 행 모드로 구분.
명령 모드에서 입력한 키는 커서의 이동이나 삭제 같은 명령으로 해석되어 실행. 입력 모드에서 입력한 키는 보통의 편집기처럼 텍스트로 입력됨.
마지막 행 모드는 화면의 가장 하단으로 커서가 이동하여 특별한 명령을 사용할 수 있는 모드.
2. vi 명령
기능 | 명령 모드 | 마지막 행 모드 |
입력모드로 이동 | a,i,o, A,I,O |
|
마지막 행 모드로 이동 | : / ? |
|
커서 이동 | h j k L H M L $ ^ - + enter w b e |
|
화면 이동 | ^f ^b ^u ^d ^y ^e |
|
저장 및 종료 | ZZ | :q :q! :w파일명 :wq :wq! |
내용 수정 | r, cw,(#cw), s(#s) ,cc, C |
|
내용 삭제 | x(#x) d(#dw) dd(#dd) D | :#d :<범위>d |
이전 동작 취소 | u U |
|
복사 및 붙여 넣기 | yy(#yy) p P | :#y :<범위>y :pu :#pu |
화면 재출력 | ^l | :e! |
행 이동 | #G, G | :# :$ |
이전 동작 반복 | . |
|
아랫행 이어붙이기 | J |
|
대문자 소문자 바꾸기 | ~ |
|
문자열 검색 |
| /문자열 ?문자열 N n |
문자열 바꾸기 |
| :s/문자열1/문자열2/g :<범위>s/문자열1/문자열2/g :<범위>s/문자열1/문자열2/gc |
다른 파일 읽어오기 |
| :r 파일명 |
다른 파일 편집으로 가기 |
| :e 파일명 :n |
셀 명령 실행 |
| :!셀 명령 :sh |
3. 버퍼 사용0
vi에서는 복사하거나 잘라낸 내용을 임시로 버퍼에 저장할 수 있다. 이름이 없는 버퍼를 언네임드 버퍼라 하고, 이름이 있는 버퍼를 네임드 버퍼라 한다. 언네임드 버퍼는 내용을 한 번에 하나씩만 저장하지만 네임드 버퍼는 버퍼별로 다른 값을 저장할 수 있다. 네임드 버퍼는 “+문자 또는 + 숫자”의 형태로 사용한다. 숫자를 사용할 경우 숫자 버퍼라고도 한다.
ㆍ네임드 버퍼 : “a, “b, “c, “d, kk “z
ㆍ숫자 버퍼 : “1, “2, ㆍㆍㆍ “9,
4. vi 환경 설정
set 명령과 옵션 | 기능 |
set nu | 파일 내용의 각 행에 행 번호를 표시한다(보이기만 할 뿐 저장되지는 않는다) |
set nonu | 행 번호를 감춘다. |
set list | 눈에 보이지 않는 특수 문자를 표시한다. (tab:^l, eol:$등) |
set nolist | 특수 문자를 감춘다. |
set showmode | 현재모드를 표시한다 |
set showmode | 현재모드를 감춘다 |
set | set로 설정한 모드 vi 환경 설정 값을 출력한다. |
set all | 모든 vi환경 변수와 현재 값을 출력한다. |
vi환경 설정은 다음 세 가지 방법으로 할 수 있다.
ㆍ사용자 홈 디렉터리에 .exrc파일로 저장한다.
ㆍ환경 변수 EXTINIT에 지정한다.
ㆍvi의 마지막 행 모드에서 명령으로 실행할 수 있다.