vim 메뉴얼

OS/리눅스 & 유닉스 2011. 11. 2. 09:44
저장 및 종료
 
:w     저장
:w file.txt    file.txt 파일로 저장
:w >> file.txt    file.txt 파일에 덧붙여서 저장
:q    vi 종료
ZZ    저장 후 종료
:wq!    강제 저장 후 종료
:e file.txt    file.txt 파일을 불러옴
:e    현재 파일을 불러옴
 
입력모드 전환 키
 
a    커서 위치 다음 칸부터 입력
A    커서 행의 맨 마지막부터 입력
i    커서의 위치에 입력
I    커서 행의 맨 앞에서부터 입력
o    커서의 다음 행에 입력
O    커서의 이전 행에 입력
s    커서 위치의 한 글자를 지우고 입력
cc    커서 위치의 한 행을 지우고 입력

라인 설정/이동
:set nu
:set nonu
:n

명령모드 입력 키
 
h    왼쪽으로 커서 이동
j    아래쪽으로 커서 이동
k    위쪽으로 커서 이동
l    오른쪽으로 커서 이동
b or B    이전 단어의 첫 글자로 이동
w or W    다음 단어의 첫 글자로 이동
e or E    단어의 마지막 글자로 이동
<CR>    다음 행의 첫 글자로 이동
^    현재 행의 첫 글자로 이동
$    현재 행의 마지막 글자로 이동
-    이전 행의 첫 글자로 이동
+    다음 행의 첫 글자로 이동
(    이전 문장의 첫 글자로 이동
)    다음 문장의 첫 글자로 이동
{    이전 문단으로 이동
}    다음 문단으로 이동
H    커서를 화면의 맨 위로 이동
M     커서를 화면의 중앙으로 이동
L    커서를 화면 최하단으로 이동
z<CR>    현재 행을 화면의 맨 위로 이동
z.    현재 행을 화면의 중앙으로 이동
z-    현재 행을 화면의 최하단으로 이동
[n]H    커서를 위에서 n행으로 이동
[n]L    커서를 아래에서 n행으로 이동
ctrl+u    반 화면 위로 스크롤
ctrl+d    반 화면 아래로 스크롤
ctrl+b    한 화면 위로 스크롤
ctrl+f    한 화면 아래로 스크롤
gg or 1G    문서의 첫 행으로 이동
G    문서의 마지막 행으로 이동
[n]G or :[n]    n행으로 이동
 
삭제와 관련되 키
 
x or dl    커서 위치의 글자 삭제
X or dh    커서 바로 앞의 글자 삭제
dw    한 단어를 삭제
d0    커서 위치부터 행의 처음까지 삭제
D or d$    커서 위치부터 행의 끝까지 삭제
dd    커서가 있는 행을 삭제
dj    커서가 있는 행과 그 다음 행을 삭제
dk    커서가 있는 행과 그 앞행을 삭제
 
복사 & 붙이기
 
yw    현재 커서 위치의 한 단어를 복사한다.
yy    현재 커서 위치의 한 행을 복사한다.
p    복사한 내용을 붙여 넣는다.
 
잘라내기
 
vi는 총 17개의 레지스터를 갖고 있다.
"" "0 "1 "2 "3 "4 "5 "6 "7 "8 "9 "- ". ": "% "# "/
"" 레지스터에는 바로 이전에 지워진 내용이 들어간다.
"1 ~ "9 레지스터에는 지워진 내용이 큐 형식으로 들어간다.
". 레지스터에는 최근까지 타이핑한 내용이 들어간다.
"% 레지스터에는 현재 편집하는 파일명이 들어간다.
"/ 레지스터에는 가장 최근에 검색한 문자열이 들어간다.
 
예를 들어, "1pu.u.u 명령으로 각 레지스터에 있는 내용을 하나씩 되돌리면서 붙여넣기 할 수 있디.
"1p 1번 레지스터의 내용을 붙여넣는다.
u 되돌리기
. 바로 이전에 했던 작업을 반복
 
:reg    레지스터를 본다.
 
블록지정
 
v    블럭지정.
ctrl+v    사각 블럭지정.
 
블록지정 후 사용 가능한 키
 
~    대소문자 전환
u    소문자로 만듦.
U    대문자로 만듦.
d    삭제
y    복사
c    치환
J    행을 합침
>    행 앞에 탭 삽입
<    행 앞에 탭 제거
:    선택된 영역에 대하여 ex 명령
 
되돌리기와 되살리기
 
u    되돌리기
ctrl+r    되살리기
 
문자열 탐색
 
/[찾고자 하는 문자열]
?[찾고자 하는 문자열]
n    다음에 매칭되는 문자열로 이동.
N    이전에 매친된 문자열로 이동.
 
문자열 치환
 
:[범위]/[매칭 문자열]/[치환 문자열]/[행 범위]
 
:s/old/new    현재 행의 처음 old를 new로 교체.
:s/old/new/g       현재 행의 모든 old를 new로 교체.
:2,4s/old/new/g     2행에서 4행까지 모든 old를 new로 교체.

:-1,+3s/old/new/g     커서 위치에서 위로 1행 아래로 3행 되는 범위에서 매칭되는 문자열을 치환.:%s/old/new/g    문서 전체에서 old를 new로 교체.
:%s/old/new/gc       문서 전체에서 old를 new로 확인하며 교체.
 
:[범위]/[패턴]/[매칭 문자열]/[치환 문자열]/[행 범위]
 
:g/pattern/s/old/new/g       pattern이 있는 모든 행의 old를 new로 교체.
:g/pattern/s//new/g    :%s/old/new/g와 동일. 


화면 나누기 
:split [파일이름]수평나누기
:vs [파일이름] 수직나누기 
파일이름을 지정한 경우, 
새로 만들어진 창에는 파일이름 을 가지는 파일이 열리고,
파일이름을 지정하지 않을경우 똑같은 파일이 열림 

'OS > 리눅스 & 유닉스' 카테고리의 다른 글

shmget(), shmat(), shmdt() - 공유메모리 공간 할당/첨부/분리  (0) 2011.11.08
유닉스(리눅스) 시그널 종류  (0) 2011.11.08
shell 조건식  (0) 2011.09.14
Bash를 이용한 쉘 스크립팅  (0) 2011.09.08
2>&1  (0) 2011.09.08
: