2020-12-17 13:05:53

우선 빔(vim)은 vi 편집기의 발전된 버전입니다. vim은 vi improved의 약어입니다. 리눅스 서버에서는 vscode, atom 등과 같은 코드에디터를 사용하기가 쉽지 않기 때문에, 서버에 기본적으로 설치되어 있는 vim을 활용하면 간단하고도 빠르게 문서를 작성 또는 수정할 수 있습니다. 

 

오늘은 자주 사용하는 vim 편집기의 명령어들을 정리해보도록 하겠습니다. 이 정도만 알아도 vim으로 작업하셔야 하는 경우 급한 불은 끌 수 있을 듯합니다. vim에는 크게 4가지 모드가 있습니다. 

 

1) 일반 모드

2) 입력 모드

3) 명령줄 모드

4) 비주얼 모드

 

각 모드별로 어떤 기능을 수행하는지, 어떤 단축키, 명령어가 있는지에 대해 정리해보겠습니다. 

 

1. 일반 모드

일반 모드는 커서를 이동하거나, 코드를 복사, 붙여넣기, 잘라내기 등을 수행할 때 사용하는 모드입니다.

 

h, j, k, l

h 커서를 왼쪽으로 이동

j 커서를 아래로 이동

k 커서를 위로 이동

l 커서를 오른쪽으로 이동

 

물론 방향키로도 이동이 됩니다만, 이 키들을 활용해서 이동하는 것이 손의 움직임을 최소화할 수 있습니다. 

 

w, b

커서를 한 단어씩 이동시킬 수도 있습니다.

 

w 다음 단어로 커서 이동

b 이전 단어로 커서 이동 

 

ctrl + u, ctrl + d, ctrl + b, ctrl + f

커서를 반 페이지씩 또는 한 페이지씩 위, 아래로 이동시킬 수도 있습니다. 한 문장씩 이동하기에는 너무 가야할 길이 멀 때 사용하면 좋겠죠.

 

ctrl + u 반 페이지 위(up)로 커서 이동

ctrl + d 반 페이지 아래(down)로 커서 이동

ctrl + b 한 페이지 위로 커서 이동

ctrl + f 한 페이지 아래로 커서 이동

 

gg

문서의 최상단으로 한번에 순간 이동시켜주는 단축키입니다. 

 

shift + g

문서의 최하단으로 한번에 순간 이동시켜주는 단축키입니다.

 

y, yy

y 선택된 영역을 복사합니다.

yy 커서가 있는 행 또는 선택된 행들을 복사합니다.

 

p

복사된 것을 커서가 있는 위치에 붙여넣기 해줍니다. 

 

dd

커서가 있는 행 또는 선택된 행들을 잘라냅니다. 

 

2. 입력 모드

입력 모드는 텍스트, 코드를 입력하고 수정하기 위한 모드입니다. 

 

a

add의 약자로, 커서 뒤에 내용을 추가합니다. 내용을 수정해야할 때 사용합니다. 

 

i

insert의 약자로, 커서 앞에 내용을 삽입합니다. 이 역시도 내용을 수정해야할 때 사용합니다.

 

3. 명령줄 모드

파일을 저장하거나 vim을 종료하거나, 문서 내에서 텍스트를 검색할 때 사용하는 모드입니다.

:w

write의 약자로, 문서의 변경사항을 저장합니다. 

 

:wq

write and quit의 약자로, 문서의 변경사항을 저장한 후 vim 편집기를 종료합니다. 

 

:q!

수정 사항을 저장하지 않고 vim 편집기를 강제로 종료합니다. 

 

:set nu!

코드 행을 보이게 합니다.

 

/검색할단어

문서 내에서 해당 단어가 검색되어 하이라이트됩니다. 다음 단어로 이동하려면 n, 이전 단어로 이동하려면 N을 입력하시면 됩니다.

 

4. 비주얼 모드

vim은 마우스가 없는 시절에 만들어진 편집기이기 때문에 마우스로 문서의 일부분을 드래그하여 선택하는 것이 불가능 했습니다. 하지만 비주얼 모드에 들어간 후에 커서를 이동시키면 문서의 일부분을 선택할 수 있습니다. 

 

v 비주얼 모드 진입

V 비주얼 모드 진입(행 단위로 깔끔하게 선택하기에 용이함)

 

마지막으로 각 모드에서 일반 모드로 돌아올 때는 ESC 키를 누르시면 됩니다. 

 

참고자료

[1] osankkk.tistory.com/entry/VI-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC, 준영아빠, "VI 편집기 사용법 정리"

 

 

(이 글은 2022-9-29에 마지막으로 수정되었습니다.)