Vi editor

DK-BigData
이동: 둘러보기, 찾기

VI 에디터 사용법

실행과 종료, 파일 저장

$ vi filename

명령모드

:q<CR> vi를 종료
:w [file]<CR>
:w
:wq <CR> 
/

입력 모드, 명령 모드의 전환 <ESC>

입력모드

a	커서 위치의 다음 칸부터부터 끼워넣기(append)
A	커서가 있는 줄의 끝에서부터 끼워넣기
i	커서 위치부터 끼워넣기(insert)
I	커서가 있는 줄의 맨 앞에서부터 끼워넣기
o	커서 바로 아래에 줄을 만들고 끼워넣기(open line)
O	커서 바로 위에 줄을 만들고 끼워넣기

커서 이동

h	한칸 왼쪽으로 이동	l	한칸 오른쪽으로 이동
j	한줄 아래로 이동	k	한줄 위로 이동
w	다음 단어의 첫 글자로 이동	W	다음 단어의 첫 글자로 이동
b	이전 단어의 첫 글자로 이동	B	이전 단어의 첫 글자로 이동
e	단어의 마지막 글자로 이동	E	단어의 마지막 글자로 이동
^	그 줄의 첫 글자로 이동	$	그 줄의 마지막 글자로 이동
0	그 줄의 처음으로 이동	<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	커서가 있는 줄과 그 앞줄을 삭제

복사 & 붙이기

yw	커서 위치부터 단어의 끝까지 복사
y0	커서 위치부터 줄의 처음까지 복사
y$	커서 위치부터 줄의 끝까지 복사
yy	커서가 있는 줄을 복사
yj	커서가 있는 줄과 그 다음 줄을 복사
yk	커서가 있는 줄과 그 앞줄을 복사
p	커서의 다음 위치에 붙여넣기
P	커서가 있는 위치에 붙여넣기

기타

5>>
5<<
u	작업 취소(undo)
U	그 줄에 행해진 작업 모두 취소
Ctrl+r	작업 재실행(redo)
.	조금 전에 했던 명령을 반복
J	현재 줄과 아래 줄을 연결

패턴 검색 및 교체

/[pattern]<CR>	현재 위치에서부터 아래 방향으로 패턴 검색
?[pattern]<CR>	현재 위치에서부터 위쪽 방향으로 패턴 검색
n	검색하던 방향으로 계속 패턴 검색
N	검색하던 반대 방향으로 계속 패턴 검색
 
/linux<CR>

특정 패턴을 다른 패턴으로 바꾸는 방법

: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로 확인하며 교체
:g/pattern/s/old/new/g<CR>	pattern이 있는 모든 줄의 old를 new로 교체
:g/pattern/s//new/g<CR>	:%s/old/new/g<CR>과 동일

vi에서 UNIX 명령 실행

:!bash<CR>
:![command]<CR>