[펌] 리눅스/유닉스 에디터 ‘vi’ (2) – VI 활용
원문 링크 : 리눅스/유닉스 에디터 ‘vi’ (2) – VI 활용
VI 활용
커서 움직이기
| 글자 단위 이동 | k | 위쪽으로 |
| j | 아랫쪽으로 | |
| h | 왼쪽으로 | |
| l | 오른쪽으로 | |
| 줄 단위 이동 | ^ | 줄의 맨앞으로 (빈칸무시) |
| 0 | 줄의 맨앞으로 | |
| $ | 줄의 맨뒤로 | |
| % | 짝을 이루는 기호 확인하기 | |
| + | 다음줄의 첫번째 글자로 | |
| – | 윗줄의 첫번째 글자로 | |
| n| | 현재줄의 n 번째 열로 (n은 임의의 숫자) | |
| H | 화면상에 처음줄로 | |
| M | 화면상의 중간줄로 | |
| L | 화면상의 마지막줄로 | |
| nH | 화면상의 처음줄로부터 n 줄 밑으로 | |
| nL | 화면상의 마지막줄로부터 n 줄 위로 | |
| G | 맨 마지막줄로 (go) | |
| nG | n 번째줄로 | |
| gg | 맨 마지막줄로 | |
| ngg | n 번째줄로 | |
| n | n 번째줄로 | |
| 단어 단위 이동 | w | 한단어 오른쪽으로 (word) |
| b | 한단어 왼쪽으로 (back) | |
| e | 현재 단어의 끝으로 이동 (end) | |
| E | 현재 단어의 끝으로 이동 (구두점 무시 – 영문자에 해당 – ? . !.) | |
| ) | 다음 문장의 시작으로 | |
| ( | 이전 문장의 시작으로 | |
| } | 다음 문단의 시작으로 | |
| { | 이전 문단의 시작으로 | |
| ]] | 다음 섹션의 시작으로 | |
| [[ | 이전 섹션의 시작으로 | |
| 화면단위 이동 | Control – F | 한화면 밑으로 이동 |
| Control – B | 한화면 위로 이동 | |
| Control – D | 반쪽화면 밑으로 이동 | |
| Control – U | 반쪽화면 위로 이동 | |
| Control – E | 커서는 현재위치 그대로 화면만 한줄씩 위로 이동 | |
| Control – Y | 커서는 현재위치 그대로 화면만 한줄씩 아래로 이동 | |
| z | 커서의 위치와 함께, 화면상의 맨위로 | |
| nz | n번 라인을 화면상의 맨위로 | |
| z. | 커서의 위치와 함께, 화면상의 중간으로 | |
| z- | 커서의 위치와 함께, 화면상의 맨아래로 | |
| ## Control – G | 현재 편집문서의 정보 보여주기 | |
| ## Control – L | 화면 재표시 (글자가 깨졌을경우) | |
| ## Control – R | 화면 재표시 (글자가 깨졌을경우) 편집하기 복사, 붙이기, 합치기 |
편집하기
| 복사, 붙이기, 합치기 | y : | 복사하기 |
| yy | 한줄복사 | |
| 2yy | 두줄복사 | |
| nyy | n줄 복사 (n 은 임의의숫자) | |
| yw | 한단어 복사 | |
| y2w | 두단어 복사 | |
| y$ | 그줄 끝까지 복사 | |
| y0(y^) | 그줄 처음까지 복사 | |
| yG | 문서의 끝까지 복사 | |
| Y | 한줄복사 (yy 와 동일) | |
| 마지막 명령어의 반복 | . | 마지막에 수행한 명령어를 반복한다. |
| 2. | 명령어를 2번 반복한다. | |
| p : | 붙이기 | |
| p | 아래로(오른쪽으로) 붙이기 | |
| 2p | 아래로(오른쪽으로) 두번 붙이기 | |
| P | 위로(왼쪽으로) 붙이기 | |
| 2P | 위로(왼쪽으로) 두번 붙이기 | |
| J : | 두줄 합치기 | |
| J | 현재줄을 윗줄에 붙이기 (두줄 합치기) | |
| 3J | 세줄합치기 | |
| 지우기, 복구 하기, 바꾸기 | d : | 지우기 |
| dd | 한줄지우기 | |
| 2dd | 두줄지우기 | |
| ndd | n줄지우기 (n 은 임의의숫자) | |
| dw | 한단어 지우기 | |
| d2w | 두단어 지우기 | |
| d$ | 그줄 끝까지 지우기 | |
| d0(d^) | 그줄 처음까지 지우기 | |
| dG | 문서 끝까지 지우기 | |
| D | 그줄 끝까지 지우기(d$ 와 동일) | |
| u : | 복구하기 | |
| u | 한번복구하기 | |
| 2u | 두번복구하기 | |
| c : | 바꾸기 | |
| cc | 한줄바꾸기 | |
| 2cc | 두줄바꾸기 | |
| ncc | 여러줄 바꾸기 (n 은 임의의숫자) | |
| cw | 한단어 바꾸기 | |
| ce | 한단어 바꾸기 (공백 제외) | |
| c2w | 두단어 바꾸기 | |
| c$ | 그줄 끝까지 바꾸기 | |
| c0(c^) | 문서 끝까지 바꾸기 | |
| C | 그줄 끝까지 바꾸기 (c$ 와 동일) | |
| r : | 한글자 바꾸기 | |
| r | 한글자 바꾸기 | |
| 2r | 두글자 바꾸기 (r 명령어는 insert 모드로 바뀌지 않는다.) | |
| R : | 바꾸면서 덮어 쓰기 | |
| s : | )한글자 지우고 insert 모드로 (cl 와 동일) | |
| – S : | 한줄지우고 insert 모드로 (cc 와 동일) | |
| ~ : | 대문자 <-> 소문자 바꾸기 (영문자에만 해당) | |
| 지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다. | ||
| 찾기 | /pattern | pattern라는 단어 찾기 (위에서 아래로) |
| ?pattern | pattern라는 단어찾기 (아래로 위에서) | |
| / : | 찾기반복 – 위에서 아래로 | |
| n : | 찾기반복 – 위에서 아래로 | |
| ? : | 찾기반복 – 아래에서 위로 | |
| N : | 찾기반복 – 아래에서 위로 | |
| fx : | 현재줄에서 x문자 찾기 (x 는 한개의 글자) | |
| Fx : | 현재줄에서 반대방향으로 x문자 찾기 (x 는 한개의 글자) | |
| tx : | 현재줄에서 x문자를 찾아서 바로전에 커서놓기 | |
| Tx : | 현재줄에서 반대방향으로 x문자를 찾아서 바로후에 커서놓기 | |
| ; : | 현재줄에서 한글자 찾기반복 | |
| ‘ : | 현재줄에서 한글자 찾기반복 (반대방향으로) | |
| 찾기와 편집 명령의 응용 | d/simple | simple 이라는 단어가 나올때까지 지우기 |
| d/^scully | 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기 | |
| y/yahoo | yahoo 라는 단어가 나올때까지 복사하기 편집모드 지정하기 | |
| i : | insert 현재커서위치 | |
| 10i* * | 문자를 10개 집어넣기 | |
| 25i=- | =- 를 25개 반복하기 | |
| I : | 현재커서가 위치한 줄의 맨처음에 | |
| a : | append 현재커서위치 바로 다음에 | |
| A : | 현재커서가 위치한 줄의 맨끝에 | |
| o : | open 현재커서위치 바로 아래줄에 | |
| O : | Open 현재커서위치 바로 윗줄에 위치 기억하기 | |
| mx : | mark 현재의 커서위치를 x 라는 문자로 기억 | |
| `x : | 기억된 x 위치로 이동 | |
| “ : | 이동하기 전의 위치로 (제자리) | |
| ‘x : | 기억된 x 위치의 맨 앞으로 이동 | |
| ” : | 이동하기 전 위치의 맨앞으로 이동 버퍼 이용하기 | |
| “xyy : | x 라는 이름의 버퍼에 한줄 복사 하기 | |
| “xp : | x 라는 이름의 버퍼에 저장된 내용을 붙이기 | |
| 잠시 쉬었다 가기 | := | 현재 줄번호 보여주기 |
| :/pattern/ | = pattern 이 위치한 줄번호 보여주기 | |

