Passion/Editor

Vi 명령어

sunshout 2007. 1. 26. 20:06
화면이동Ctrl + F ⇒ 한 화면 밑으로 이동
Ctrl + B ⇒ 한 화면 위로 이동
Ctrl + D ⇒ 반 화면 밑으로 이동
Ctrl + U ⇒ 반 화면 위로 이동
Ctrl + E ⇒ 커서는 현재위치 그대로, 화면만 한 줄씩 위로 이동
Ctrl + Y ⇒ 커서는 현재위치 그대로, 화면만 한 줄씩 아래로 이동
z ⇒ 커서의 위치와 함께 화면상의 맨위로 이동
nz ⇒ n번 라인을 화면상의 맨 위로 이동
z- ⇒ 커서의 위치와 함께 화면상의 맨아래로 이동
Ctrl + G ⇒ 현재 편집하고 있는 문서의 상태를 알수 있다
Ctrl + L ⇒ 화면 재표시 (글자가 깨졌을 경우, 윈도우의 F5와 비슷)
Ctrl + R ⇒ 화면 재표시 (글자가 깨졌을 경우)
복사/붙이기y ⇒ 복사하기
yy ⇒ 한줄 전체 내용 복사
nyy ⇒ 현재줄 이하로 n개줄 복사 (n은 임의의 숫자, 2yy는 2줄 복사)
yw ⇒ 한단어 복사
ynw ⇒ n개의 단어 복사 (y2w는 두 개의 단어 복사)
y$ ⇒ 현재 위치에서 그 줄의 끝까지 복사
y0(y^) ⇒ 현재 위치에서 그 줄의 처음까지 복사
yG ⇒ 현재 위치에서 파일의 끝까지 복사 (G는 파일의 마지막 줄)
Y ⇒ 한줄 전체의 내용 복사 (yy와 동일)

. ⇒ 마지막에 수행한 명령어를 반복
2. ⇒ 명령어를 2번 반복
p ⇒ 버퍼에 저장된 내용을 커서의 오른쪽으로 붙여넣기
np ⇒ n번만큼 p 명령 반복, 2p라면 버퍼의 내용을 두번 붙여넣음
P ⇒ 위로 붙이기
nP ⇒ 버퍼에 저장된 내용을 커서의 왼쪽으로 붙여넣는다.

xp ⇒ 두 문자를 바꾸는 명령
deep ⇒ 두 단어를 바꾸는 명령
ddp ⇒ 두 줄을 바꾸는 명령
J ⇒ 현재 줄을 윗줄에 붙인다 (두줄 합치기)
nJ ⇒ n개의 줄을 합쳐 한줄로 만든다.
글자 편집d$ ⇒ 커서가 있는 위치에서 그 줄의 끝가지 지우기
D ⇒ 커서부터 줄의 끝가지 삭제 (d$와 동일)
d ⇒ 지우기
dd ⇒ 현재커서가 위치한 줄의 전체를 삭제
ndd ⇒ n줄 지우기
dw ⇒ 한단어 지우기
dnw ⇒ n개의 단어를 지움
d0(d^) ⇒ 그 줄의 처음까지 지우기
dG ⇒ 커서가 위치한 곳으로부터 문서 끝까지 지우기
dmove ⇒ 커서가 위치한 곳부터 move 까지 삭제
dlg ⇒ 커서가 위치한 곳으로부터 편집버퍼의 맨앞까지 삭제
:lined ⇒ 지정한 줄을 삭제
:line,lined ⇒ 지정한 범위를 삭제

u ⇒ 되살리기, 버퍼에 저장되어 있는 원래 내용 복구
nu ⇒ n단계까지의 명령 복구

c ⇒ 그 줄 끝까지 바꾸기
cc ⇒ 한줄 바꾸기
ncc ⇒ n개의 줄 바꾸기
cw ⇒ 한단어 바꾸기
ce ⇒ 공백을 제외하고 한단어를 바꾸기
c2w ⇒ 두단어 바꾸기
c$ ⇒ 그 줄 끝까지 바꾸기
c0(c^) ⇒ 현재 위치에서 파일의 끝까지 바꾼다
cmove ⇒ 커서부터 move까지 변경
r ⇒ 한글자 바꾸기
nr ⇒ n글자 바꾸기
R ⇒ 바꾸면서 삽입이 아닌 수정모드로
s ⇒ 한글자 지우고 insert 모드로 (cl과 동일)
S ⇒ 한줄 지우고 insert 모듣로 (cc와 동일)
~ ⇒ 대문자를 소문자로 바꾸기, 영문자에만 해당

※ 지우기와 바꾸기의 차이점은 바꾸기는 명령어 후에 vi 편집모드로 바뀐다
찾기/요 ⇒ 현재 위치에서 아래쪽 방향으로 '요'라는 단어 찾기
?요 ⇒ 현재 위치에서 위쪽 방향으로 '요'라는 단어 찾기
/ ⇒ 단어찾기를 반복한다, 아래쪽 방향으로 (n과 동일)
? ⇒ 단어찾기를 반복한다, 위쪽 방향으로 (N과 동일)
fx ⇒ 현재줄에서 x문자 찾기, x는 한개 글자
Fx ⇒ 현재줄에서 반대방향으로 x문자 찾기
tx ⇒ 현재줄에서 x문자를 찾아서 바로전에 커서놓기
Tx ⇒ 현재줄에서 반대방향으로 x문자를 찾아서 바로 후에 놓기
; ⇒ 현재줄에서 글자 찾기 반복, 뒤로
' ⇒ 현재줄에서 글자 찾기 반복, 앞으로

현재 위치부터 파일끝까지 변경 (a->b)

:.,$s/a/b/g