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 |