- 출처 : http://blog.naver.com/kkson50/120108900722 -
* 명령어 정리
vi 시작 명령어 |
|
vi 파일명 |
파일 열기, 작성 |
vi +18 파일명 |
18행으로 파일 열기 |
vi +/"문자열" fn |
"문자열"의 처음발생 단어부터 열기 |
vi -r 파일명 |
손상된 파일 회복 |
view 파일명 |
읽기 전용으로 파일 열기 |
vi 커서 이동 명령어 |
|
h(←) |
좌측으로 |
l(→) |
우측으로 |
j(↓) |
아래로 |
k(↑) |
위로 |
w |
오른쪽 한 단어의 끝 부분으로, word |
e |
오른쪽 한 단어의 앞 부분으로 |
b |
왼쪽 한 단어의 앞 부분으로, back |
Enter |
한 행 아래로 |
Back space |
한 문자 왼쪽으로 |
Space Bar |
한 문자 오른쪽으로 |
^ |
행의 맨 왼쪽으로 |
$ |
행의 맨 오른쪽으로 |
H |
화면의 맨 위로, Home |
M |
화면의 중간으로, Middle |
L |
화면의 맨 아래로, Last |
숫자G |
'숫자'만큼 지정한 줄로 |
Ctrl + f |
한 화면 위로 |
Ctrl + b |
한 화면 아래로, bottom |
Ctrl + d |
반 화면 위로, down |
Ctrl + u |
반 화면 아래로, up |
Ctrl + e |
한 줄씩 위로 |
Ctrl + y |
한 줄씩 아래로 |
문자,행 삽입 명령어 |
|
a (종료:ESC) |
커서 오른쪽에 문자 삽입 , append |
A (종료:ESC) |
커서 오른쪽, 행의 끝에 문자 삽입 , Append |
i (종료:ESC) |
커서 왼쪽에 문자 삽입, insert |
I (종료:ESC) |
커서 왼쪽, 행의 처음에 문자 삽입 |
o (종료:ESC) |
커서 아래에 행 삽입, |
O (종료:ESC) |
커서 위에 행 삽입 |
텍스트 변경 명령어 |
|
cw (종료:ESC) |
단어 변경 |
cc (종료:ESC) |
행 변경 |
C (종료:ESC) |
커서 오른쪽의 행 변경 |
s (종료:ESC) |
커서가 위치한 문자열 대체 |
S (종료:ESC) |
커서가 위치한 라인의 문자열 대체 |
r |
커서 위치 문자를 다른 문자로 대체 , replace |
r-Enter |
행 분리 |
J |
현재 행과 아래 행 결합 |
xp |
커서 위치 문자와 오른쪽 문자 교환 |
~ |
|
u |
이전 명령 취소 , undo |
U |
행 변경 사항 취소 |
:u |
이전의 최종 행 취소 |
. |
이전 최종 명령 반복 |
텍스트 삭제 명령어 |
|
x |
커서가 있는 문자 삭제 |
5x |
커서가 있는 위치부터 5개의 문자를 삭제 |
dw |
현재 커서가 있는 한단어 삭제 |
dd |
커서가 있는 라인 삭제 |
5dd |
커서가 있는 라인부터 5개의 라인 삭제 |
dG |
커서가 있는 라인부터 문서의 끝까지 모두 삭제 |
db |
커서의 위치에서 꺼꾸로 한단어 삭제 |
D |
커서 오른쪽 행 삭제 |
:5,10d |
5-10번째 행 삭제 |
복사 및 이동 명령어 |
|
yy |
행 yank 또는 복사 |
Y |
행 yank 또는 복사 |
P |
yank되거나 삭제된 행 현재 행 위에 삽입 , Paste |
p |
yank되거나 삭제된 행 현재 행 아래에 삽입 ,paste |
:1,2 co 3 |
1-2행을 3행 다음으로 복사, copy |
:4,5 m 6 |
4-5행을 6행 위로 이동, move |
행 번호 설정 명령어 |
|
:set nu |
행 번호 표시 , number |
:set nonu |
행 번호 숨기기 , nonumber |
행 찾기 명령어 |
|
G |
파일의 마지막 행으로 가기 |
1G |
파일의 1번째 행으로 가기 |
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! |
수정한 것을 무시하고 다시 편집상태로 |
[출처] VI에디터 명령어 - 표형태로 잘 요약했어요|작성자 까만손오공
* 기타 명령어
:!date - 유닉스 명령을 vi에디터 상에서 실행할 수 있다.
:r aaa.txt - 현재 문서의 상단에 aaa.txt 의 내용을 삽입한다.
:sh - vi를 놔 두고 새로운 쉘로 이동 (exit로 복귀)
* vi 환경설정
- 환경설정 파일은 각 계정 폴더 (/root, /home/bruce ...)의 .vimrc 파일이다. 없으면 생성하자.
- .vimrc 파일 예제
set nu tabstop=4 autoindent
- 옵션 설명 (에디터 별로 적용되지 않는 옵션들도 있음에 주의)
nonu : 행번호를 보여주지 않는다.
autoindent : 자동으로 들여쓰기를 한다 (이전 행의 시작위치에서 커서 시작)
tabstop=4 : 탭 간격을 4로 한다.