VI 편집기는 emacs와 더불어 유닉스에서 사용하는 표준편집기입니다. 리눅스 서버에 ssh 로 접속을 한 이후에 vi 명령어가 사용이 가능 합니다. 이미 존재하는 파일을 수정 할때는 vi 파일명 하시면 됩니다. 신규 파일을 만들고자 할때도 vi 신규화일명 하시면 새로운 파일이 생성 됩니다.
Vi 의 특징은 입력모드와 명령모드가 있습니다. 일반적으로 화면에 입력한 글이 실제 입력이 되는 상태를 입력 모드라고 합니다. 이때 ESC 키를 입력을 하게 되면 명령모드로 변경이 되면서 각종 명령을 할 수 있습니다. 모든 명령어는 대소문자를 구분합니다. |
입력명령 |
a |
커서 위치의 다음 칸부터부터 끼워넣기 |
A |
커서가 있는 줄의 끝에서부터 끼워넣기 |
i |
커서 위치부터 끼워넣기 |
I |
커서가 있는 줄의 맨 앞에서부터 끼워넣기 |
o |
커서 바로 아래에 줄을 만들고 끼워넣기 |
O |
커서 바로 위에 줄을 만들고 끼워넣기 |
아래는 실제 vi 편집기에서 입력중일 때 화면캡쳐한 것입니다. 입력모드 일때는 아래에 insert 라고 표시가 됨을 알수 있습니다.
|
이동명령 |
이동명령은 명령모드에서 입력을 해야 합니다. 즉 입력모드에서 ESC 키를 입력하여 명령모드로 전환후 사용하시면 됩니다.
h |
한칸 왼쪽으로 이동 |
j |
한줄 아래로 이동 |
w |
다음 단어의 첫 글자로 이동 |
b |
이전 단어의 첫 글자로 이동 |
e |
단어의 마지막 글자로 이동 |
^ |
그 줄의 첫 글자로 이동 |
0 |
그 줄의 처음으로 이동 |
+ |
다음 줄의 첫 글자로 이동 |
( |
이전 문장의 첫 글자로 이동 |
{ |
이전 문단으로 이동 |
l |
한칸 오른쪽으로 이동 |
k |
한줄 위로 이동 |
W |
다음 단어의 첫 글자로 이동 |
B |
이전 단어의 첫 글자로 이동 |
E |
단어의 마지막 글자로 이동 |
$ |
그 줄의 마지막 글자로 이동 |
<CR> |
다음 줄의 첫 글자로 이동 |
- |
윗줄의 첫 글자로 이동 |
) |
다음 문장의 첫 글자로 이동 |
} |
다음 문단으로 이동 | |
수정명령 |
입력되어 있는 글을 수정할 때 명령모드에서 수정명령을 내리고 수정을 할 때 사용합니다.
r |
커서 위치의 한 글자 교체 |
R |
커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체 |
s, cl |
커서 위치의 글자를 한개를 여러 글자로 교체 |
ch |
커서 바로 앞의 글자를 한개를 여러 글자로 교체 |
cw |
커서 위치의 한 단어를 교체 |
c0 |
커서 위치부터 줄의 처음까지 교체 |
C, c$ |
커서 위치부터 줄의 끝까지 교체 |
cc |
커서가 있는 줄을 교체 |
cj |
커서가 있는 줄과 그 다음 줄을 교체 |
ck |
커서가 있는 줄과 그 앞줄을 교체 | |
삭제명령
글을 한글자, 한단어, 한줄, 전체 삭제등 삭제 할 때 사용하는 명령어 입니다.
x, dl |
커서 위치의 글자 삭제 |
X, dh |
커서 바로 앞의 글자 삭제 |
dw |
한 단어를 삭제 |
d0 |
커서 위치부터 줄의 처음까지 삭제 |
D, d$ |
커서 위치부터 줄의 끝까지 삭제 |
dd |
커서가 있는 줄을 삭제 |
dj |
커서가 있는 줄과 그 다음 줄을 삭제 |
dk |
커서가 있는 줄과 그 앞줄을 삭제 |
dG |
커서가 있는 줄부터 문서 마지막까지 삭제 | |
복사 및 붙여 넣기 명령
단어 혹은 줄단위로 복사를 하여 원하는 위치에 붙여 넣을 때 사용하는 명령어 입니다.
yw |
커서 위치부터 단어의 끝까지 복사 |
y0 |
커서 위치부터 줄의 처음까지 복사 |
y$ |
커서 위치부터 줄의 끝까지 복사 |
yy |
커서가 있는 줄을 복사 |
5yy |
커서가 있는 줄부터 5줄을 복사 |
yj |
커서가 있는 줄과 그 다음 줄을 복사 |
yk |
커서가 있는 줄과 그 앞줄을 복사 |
p |
커서의 다음 위치에 붙여넣기 |
P |
커서가 있는 위치에 붙여넣기 | |
기타 명령
주로 많이 사용하는 일반 명령어 들입니다.
u |
작업 취소(undo) |
U |
그 줄에 행해진 작업 모두 취소 |
Ctrl+r |
작업 재실행(redo) |
. |
조금 전에 했던 명령을 반복 |
J |
현재 줄과 아래 줄을 연결 |
~ |
대문자를 소문자로, 소문자를 대문자로 바꿈 |
% |
괄호의 반대쪽 짝으로 이동 |
Ctrl+l |
현재 화면을 지우고 다시 그림 |
Ctrl+g |
파일에 관한 정보를 표시 | |
화면 이동 명령
화면 이동 명령은 기존의 h,j,k,l 등으로 한칸씩 움직이기에는 시간이 많이 소요 될 때 한꺼번에 많은 화면 이동이 필요할 때 유용합니다.
H |
커서를 화면의 맨 위로 |
M |
커서를 화면의 중앙으로 |
L |
커서를 화면의 맨 아래로 |
[n]H |
커서를 위에서 [n]번째 줄로 |
Ctrl+u |
반 화면 위로 스크롤 |
Ctrl+d |
반 화면 아래로 스크롤 |
gg, 1G |
문서의 맨 처음 줄로 |
[n]G |
[n]번째 줄로 이동 |
z<CR> |
현재 줄을 화면의 맨 위로 |
z. |
현재 줄을 화면의 중앙으로 |
z- |
현재 줄을 화면의 맨 아래로 |
[n]L |
커서를 아래에서 [n]번째 줄로 |
Ctrl+b |
한 화면 위로 스크롤 |
Ctrl+f |
한 화면 아래로 스크롤 |
G |
문서의 맨 마지막 줄로 |
원하는 줄로 이동이 되었는지 확인 하기 위해서는 옵션중에 number 를 켜면 됩니다. :set nu 를 입력하시면 문서 좌측에 줄 번호를 볼수 있습니다. 해제하시려면 :set nonu 라고 입력하시면 됩니다.
|
검색 명령
글의 내용중 원하는 단어를 검색하고자 할 때 사용합니다.
/[pattern]<CR> |
현재 위치에서부터 아래 방향으로 패턴 검색 |
?[pattern]<CR> |
현재 위치에서부터 위쪽 방향으로 패턴 검색 |
n |
검색하던 방향으로 계속 패턴 검색 |
N |
검색하던 반대 방향으로 계속 패턴 검색 | |
치환(교체) 명령
어떤 단어를 다른 단어로 변경할 때 사용하는 명령 입니다.
:s/old/new<CR> |
현재 줄의 처음 old를 new로 교체 |
:s/old/new/g<CR> |
현재 줄의 모든 old를 new로 교체 |
:1,20s/old/new/g<CR> |
1부터 20번째 줄까지 모든 old를 new로 교체 |
:-2,+4s/old/new/g<CR> |
커서 2줄 위부터 4줄 아래까지 old를 new로 교체 |
:%s/old/new/g<CR> |
문서 전체에서 old를 new로 교체 |
:%s/old/new/gc<CR> |
문서 전체에서 old를 new로 확인하며 교체 | |
파일관련 명령
파일을 저장하거나, 불러 올 때 사용하는 명령입니다.
:q<CR> |
vi를 종료함 |
:w<CR> |
편집중인 문서를 저장 |
:w [file]<CR> |
편집중인 문서를 [file]로 저장 |
:w >> [file]<CR> |
편집중인 문서를 [file]에 덧붙여서 저장 |
:e [file]<CR> |
[file]을 불러옴 |
:e#<CR> |
이전에 편집하던 파일을 불러옴 |
:e%<CR> |
현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소 |
:r [file]<CR> |
[file]을 커서위치에 끼워넣기 |
파일에 쓰기 권한이 없을 때 저장을 하고자 할 때에 'readonly' option is set (use ! to override) 라는 메시지가 출력이 되면서 저장이 안되는 경우가 있습니다. 이때는 강제 옵션인 ! 를 추가로 붙여 주면 됩니다.
|
- 출처 : HOSTWAY
- URL : http://www.hostway.co.kr/doc/manual/linux/linux_3.htm#c