몇년 전에 리눅스를 사용하면서 vi 에디터 명령어를 조금 외웠었다.

그런데 오랜만에 다시 하려니까 기억나는 건 :q!... :wq.... i.... 딱 이 세가지.

Putty로 원격지 서버에 접속해서 편집할 땐 저거만 알아도 별 무리가 없었는데,

직접 Ubuntu OS를 깔고 vi 에디터를 사용하려니 저걸론 부족해서 조금 더 찾아봤다.

전부 다 정리하긴 무리가 있고, 자주 사용하게 되는 것들만 정리해봤다.


vi Tutorial Editor Modes

출처: http://www.livefirelabs.com/unix_tip_trick_shell_script/unix_operating_system_fundamentals/vi-tutorial-part-1.htm

먼저, 사용법을 간략하게 표현한 표부터 첨부하겠다.


라인 명령 모드(Last line Mode)로 바꾸기 위해선 먼저 :를 눌러야한다.

Enter키를 누르면 다시 명령 모드로 돌아올 수 있다.

입력 모드로 바꾸기 위해선 i, a 등이 사용되는데 밑에 정리하겠다.


라인 명령 모드에서,

w는 저장, q는 종료키라고 생각하면 된다.

:w를 누르면 편집한 내용이 저장 되고 :q를 누르면 종료된다.

:wq를 누르면 저장 후 종료, :q!를 누르면 편집 내용을 무시하고 종료할 수 있다.

vi 에디터를 열 때, 파일명을 지정하지 않았다면 :w 뒤에 원하는 파일명을 입력하면 된다.


다음은 명령 모드에서 입력 모드로 전환하는 키다.

i

 현재 커서의 위치부터 입력

I

 현재 커서 줄의 맨 앞에서부터 입력 

a

 현재 커서의 위치 다음 칸부터 입력 

A

 현재 커서 줄의 맨 마지막부터 입력 

o

 현재 커서의 다음 줄에 입력

O

 현재 커서의 이전 줄에 입력 

 현재 커서 위치의 한 글자를 지우고 입력 

S

 현재 커서의 한 줄을 지우고 입력


명령 모드에서 커서를 이동할 때 사용하는 키다.

h

 커서를 왼쪽으로 한 칸 이동

j

 커서를 아래로 한 칸 이동

k

 커서를 위로 한칸 이동

l

커서를 오른쪽으로 한 칸 이동 

ctrl+F

 다음 화면으로 이동 

ctrl+B

 이전 화면으로 이동 

^

 현재 행의 처음으로 이동 

$

 현재 행의 마지막으로 이동 

gg

 제일 첫 행으로 이동 

G

 제일 끝 행으로 이동 

[n]G

 해당 숫자(n)의 행으로 이동 

:[n]+Enter

 해당 숫자(n)의 행으로 이동 


명령 모드에서 삭제, 복사, 붙여넣기와 관련된 키다.

 현재 커서가 위치한 글자 삭제

X

 현재 커서가 위치한 앞 글자 삭제 

dd

 현재 커서의 행 삭제 

[n]dd

 현재 커서부터 숫자(n)만큼의 행 삭제 

yy

 현재 커서가 있는 행을 복사 

[n]yy

 현재 커서부터 숫자(n)만큼의 행을 복사

p

 복사한 내용을 현재 행 이후에 붙여넣기

P

 복사한 내용을 현재 행 이전에 붙여넣기


명령 모드에서 문자열을 찾는 키다.

 /[문자열]+Enter

 해당 문자열을 찾음(현재 커서 이후)

n

 찾은 문자 중에서 다음 문자로 이동


이 외에도 라인 명령 모드에서

:%s/[기존문자열]/[새문자열] 을 사용하면 문자열을 치환할 수 있고,

:set number 를 입력하면 vi 에디터의 앞에 행 번호가 표시된다.



+ Recent posts