| vi 시작 명령어 | |
| vi 파일명 | 파일 열기, 작성 |
| vi +18 파일명 | 18행으로 파일 열기 |
| vi +/"문자열" fn | "문자열"의 처음발생 단어부터 열기 |
| vi -r 파일명 | 손상된 파일 회복 |
| view 파일명 | 읽기 전용으로 파일 열기 |
|
vi 커서 이동 명령어 | |
| h(←) | 좌측으로 커서 이동 |
| l(→) | 우측으로 커서 이동 |
| j(↓) | 아래로 커서 이동 |
| k(↑) | 위로 커서 이동 |
| w | 오른쪽 한 단어의 끝 부분으로 커서 이동 |
| e | 오른쪽 한 단어의 앞 부분으로 커서 이동 |
| b | 왼쪽 한 단어의 앞 부분으로 커서 이동 |
| Enter | 한 행 아래로 커서 이동 |
| Back space | 한 문자 왼쪽으로 커서 이동 |
| Space Bar | 한 문자 오른쪽으로 커서 이동 |
| ^ | 행의 맨 왼쪽으로 커서 이동 |
| $ | 행의 맨 오른쪽으로 커서 이동 |
| H | 화면의 맨 위로 이동 |
| M | 화면의 중간으로 이동 |
| L | 화면의 맨 아래로 이동 |
| 숫자G | '숫자'만큼 지정한 줄로 커서 이동 |
| Ctrl + f | 한 화면 위로 이동 |
| Ctrl + b | 한 화면 아래로 이동 |
| Ctrl + d | 반 화면 위로 이동 |
| Ctrl + u | 반 화면 아래로 이동 |
| Ctrl + e | 한 줄씩 위로 이동 |
| Ctrl + y | 한 줄씩 아래로 이동 |
|
문자,행 삽입 명령어 | |
| a (종료:ESC) | 커서 오른쪽에 문자 삽입 |
| A (종료:ESC) | 커서 오른쪽, 행의 끝에 문자 삽입 |
| i (종료:ESC) | 커서 왼쪽에 문자 삽입 |
| I (종료:ESC) | 커서 왼쪽, 행의 처음에 문자 삽입 |
| o (종료:ESC) | 커서 아래에 행 삽입 |
| O (종료:ESC) | 커서 위에 행 삽입 |
|
텍스트 변경 명령어 | |
| cw (종료:ESC) | 단어 변경 |
| cc (종료:ESC) | 행 변경 |
| C (종료:ESC) | 커서 오른쪽의 행 변경 |
| s (종료:ESC) | 커서가 위치한 문자열 대체 |
| S (종료:ESC) | 커서가 위치한 라인의 문자열 대체 |
| r | 커서 위치 문자를 다른 문자로 대체 |
| r-Enter | 행 분리 |
| J | 현재 행과 아래 행 결합 |
| xp | 커서 위치 문자와 오른쪽 문자 교환 |
| ~ | 문자형(대,소문자) 변경 |
| u | 이전 명령 취소 |
| U | 행 변경 사항 취소 |
| :u | 이전의 최종 행 취소 |
| . | 이전 최종 명령 반복 |
|
텍스트 삭제 명령어 | |
| x | 커서가 있는 문자 삭제 |
| 5x | 커서가 있는 위치부터 5개의 문자를 삭제 |
| dw | 현재 커서가 있는 한단어 삭제 |
| dd | 커서가 있는 라인 삭제 |
| 5dd | 커서가 있는 라인부터 5개의 라인 삭제 |
| db | 커서의 위치에서 꺼꾸로 한단어 삭제 |
| D | 커서 오른쪽 행 삭제 |
| :5,10d | 5-10번째 행 삭제 |
|
복사 및 이동 명령어 | |
| yy | 행 yank 또는 복사 |
| Y | 행 yank 또는 복사 |
| P | yank되거나 삭제된 행 현재 행 위에 삽입 |
| p | yank되거나 삭제된 행 현재 행 아래에 삽입 |
| :1,2 co 3 | 1-2행을 3행 다음으로 복사 |
| :4,5 m 6 | 4-5행을 6행 위로 이동 |
|
행 번호 설정 명령어 | |
| :set nu | 행 번호 표시 |
| :set nonu | 행 번호 숨기기 |
|
행 찾기 명령어 | |
| G | 파일의 마지막 행으로 가기 |
| 21G | 파일의 21번째 행으로 가기 |
| Ctrl + G | 현재의 filename과 line수를 알려줌 |
|
탐색 및 대체 명령어 | |
| /검색할 문자열/ | 오른쪽 아래 방향으로 문자열 검색 |
| ?검색할 문자열? | 왼쪽 위 방향으로 문자열 검색 |
| n | 문자열의 다음으로 계속 검색 |
| N | 문자열의 이전으로 계속 검색 |
| :g/search-string/s//replace-string/gc | 각 발생 탐색 후 확인하고 대체 |
| :s/str/rep/ | 현재 행의 str을 rep로 대체 |
| :1,.s/str/rep/ | 1부터 현재 행의 str을 rep로 대체 |
| :%s/str/rep/g | 파일 전체 str을 rep로 전부 대체 |
| :.$/aaa/bbb/ | 커서의 위치로부터 화일의 끝까지 있는 모든 aaa를 bbb로 대체 |
|
화면정리 명령어 | |
| Ctrl + l | 불필요한 화면정리 후 다시 표시 |
|
파일 명령어 | |
| :r filename | 커서 다음에 파일 삽입 |
| :34 r filename | 파일을 34번째 행 다음에 삽입 |
|
보관 및 종료 명령어 | |
| :w | 변경사항 보관 |
| :w filename | 버퍼를 파일로 보관 |
| :wq | 변경사항 보관 후 vi 종료 |
| ZZ | 변경사항 보관 후 vi 종료 |
| :q! | 변경사항 보관하지 않고 종료 |
| q | 수정한 파일을 저장하지 않고 vi 종료 |
| e! | 수정한 것을 무시하고 다시 편집상태로 |
활용예
1. 문자치환 (abc가 들어있는 문자를 cba 로 바꿔 버린다.)
- 문서 전체를 적용할 때
:%s/abc/cba/g
- 커서의 위치부터 끝까지 적용할 때
:.,$/abc/cba/g
- 전체 문서에서 /etc/ 를 /etc/local/ 로 치환
:s/\/etc\//\/etc\/local\//g
2. 삭제
- abc로 시작하는 모든 단어를 삭제
:%s/abc[a-z]*//g
- abc가 들어가 모든 문자 삭제
:g/abc/d
- abc0, ... abc9까지의 모든 단어 삭제
:g/abc[0-9]/d
- 빈줄모두 삭제
:g/^$/d
3. 복사와 붙여넣기
해당 줄에 yy를 치고 삽입하고자 하는 위치에서 p를 친다.
3줄을 복사한다면 3yy를 치고 p를 입력
4. 저장 종료
저장은 명령어 모드에서 w
:w
종료는 명령어 모드에서 q
:q
저장후 종료는 명령어 모드에서
:wq
| CentOS 5 계열 보안 버그로 인한 커널 업데이트 (0) | 2008.02.14 |
|---|---|
| vi 에디터 명령어 및 사용법 (0) | 2008.01.18 |
| CentOS 소개 및 페도라와의 비교 (0) | 2007.09.27 |
| 가비아 리눅스 기술지원 서비스 가격테이블 (0) | 2007.09.17 |
| 아이네트호스팅 리눅스 기술지원 서비스 가격테이블 (0) | 2007.09.17 |