[리눅스]Vi 명령어

Vi 편집기

리눅스 초반에 가장 주로 많이 쓰는 것이 Vi 편집기입니다. 그래서인지, Vi 편집기에 대해 많은 사람들이 쉽게 생각하고 있지만 놓치는 부분도 있는 편이죠. 오늘은 이 Vi 편집기에 대해 알아보겠습니다. 한번 익혀두면 편리하게 쓸 수 있는 이 에디터는 ‘Visual display editor’를 의미하고 요즘 대부분의 배포판에는 vim이라는 vi의 clone이 포함되어 있습니다. vim(Vi IMproved=향상된 Vi)은 한글을 지원하고 원래의 vi의 기능을 가지고 있으며 여러 가지 조금 더 편리한 툴들을 제공합니다.

Vi의 모드

Vi편집기에는 명령, 입력, 실행의 3가지 모드가 있습니다.

명령

흔히 말하는 처음 vi 편집기에 들어왔을 때의 상황입니다. vi 편집기의 초기 시작 모드라고 할 수 있죠. 커서를 이동하거나 삭제, 복사, 붙여넣기 등의 편집 작업이 가능합니다.

명령어 동작
h 커서 왼쪽 이동(왼쪽 방향키)
l 커서 오른쪽 이동(오른쪽 방향키)
k 커서 위쪽 이동(위쪽 방향키)
j 커서 아래쪽 이동(아래쪽 방향키)
W, w 다음 단어의 처음으로 이동
E, e 단어의 끝으로 이동
B, b 이전 단어의 처음으로 이동
gg, [[ 문서의 처음으로 이동
G, ]] 문서의 마지막으로 이동
i 현재 위치에서 입력 모드 변경
I 현재 줄 처음에서 입력 모드 변경
s 현재 문자를 지우고 입력 모드 변경
S 현재 행의 모든 문자를 지우고 입력 모드 변경
R 수정 모드 전환
x 현재 커서 위치 문자 삭제
dd 현재 커서의 행 삭제
(n) dd 현재 커서에서부터 n 만큼 행 삭제
yy 현재 커서에 있는 행을 복사
(n) yy 현재 커서부터 n만큼 행 복사
p 복사한 내용 붙여 넣기
page up 커서를 한번에 위로 이동
page down 커서를 한번에 아래로 이동
u 이전으로 되돌리기(Undo)

예를 들면, 복사하고 싶은 줄에 커서를 둔 후 yy를 눌러 그 열을 모두 복사한 후, 붙여 넣고 싶은 줄에 가서 p를 누르면 붙여넣기가 됩니다. 문서의 제일 마지막으로 가고 싶다면 G를 누른다던지, 문서가 길다면 page down 버튼을 눌러 빠르게 내려간다던지 등등, 명령 모드에서 이런 기능들을 알고 있다면 더욱더 편리하게 작업할 수 있습니다.

입력

입력모드에는 말 그대로 문서의 편집이 가능합니다.

명령어 동작
esc버튼 명령 모드로 진입

실행

실행 모드는 명령 모드에서 실행할 수 있습니다.

명령어 동작
:w 저장
:wq 저장 후 종료
:wq! 저장 후 강제 종료
:q 종료
:q! 강제 종료
:w filename filename으로 파일 저장(사본저장 기능)
:w ../filename 부모 디렉토리에 파일 저장
/문자열 앞에서 부터 문자열 찾기
?문자열 뒤에서 부터 문자열 찾기
:s/old/new 현재 행의 old를 new로 바꾼다
:%s/old/new/g 모든 old를 찾아 new로 바꾼다
:%s/old/new/gc 모든 old를 찾아 new로 바꾸기 전에 물어본다
:set number 행번호 출력(:set nu)
:set nonumber 행번호 숨김(:set nonu)
:cd 현재 디렉토리 출력

이상으로 나름 자주 사용하는 vi 편집기의 기능들을 알아보았습니다. 머리로 익히려는 방법보다는 감으로 익히는 게 중요합니다. vi로 문서작업을 하며 그때그때 사용방법을 찾아본다면 많은 실력 향상이 있을 것입니다. 새로운 내용이 있다면 추후에 반복적으로 업데이트하겠습니다.