Programming-[Base]/OS-Unix, Linux, Ubuntu

2. VIM 이해하기

컴퓨터 탐험가 찰리 2020. 7. 26. 12:36
728x90
반응형

1. VIM이란?

vim(VI Improved; 향상된 VI)

보통 다른 GUI(Graphic User Interface) 환경에서 사용하는 word, notepad 등과 달리,

CLI(Command Line Interface) 환경에서 사용하는 Text Editor이다.

CLI 환경에서 사용하므로, 마우스 기반이 아니라 키보드만을 이용하여 사용할 수 있는 text editor라고 이해하면 된다.

 

vim 설치

vim의 설치를 위해서는 terminal에 아래와 같이 입력하면 된다.

sudo apt install vim

 

vim 실행

vim을 실행하기 위해서는 terminal에 vim이라고 입력하고 엔터를 치면 된다.

text 파일을 열기 위해서

vim 바깥 termianl에서는 'vim 파일이름'이라고 입력,

vim 내부 에서는 명령모드에서 'open 파일이름' 이라고 입력하면 된다.

 

vim의 모드

4가지 모드가 있다.

일반모드(normal mode),

입력 모드(insert mode),

비주얼모드(Visual mode),

명령모드(command mode)

 

모드에 따라 같은 키를 눌러도 다른 작동을 하게 된다.

처음에는 일반 모드로 실행되며,

i(insert), v(visual), : 키를 누르면 각각 입력, 비주얼, 명령 모드로 전환된다.

esc키를 누르면 일반모드로 다시 전환된다.

 

Normal Mode를 제외한 각 모드에서 다른 모드로 전환을 위해서는 반드시 ESC키를 눌러 Normal mode로 전환 후에 다른 모드로 전환이 가능하다.

각 모드로 전환하는 단축키 및 설명

 

2. 입력 모드(Insert mode)

입력모드는 파일의 내용을 작성하기 위한 모드이다. 아래 단축키를 이용하여 전환 후, 원하는 내용을 작성하면 된다.

 

입력모드로 전환하기

a를 누르면 커서가 한 칸 뒤로 이동된 후 입력모드로 전환한다.

대문자 I를 입력하면 커서를 첫번째 칸으로 옮기고 입력모드로 전환한다.

대문자 A를 입력하면 커서를 마지막 칸으로 옮기고 입력모드로 전환한다.

소문자 o(open; 개행)를 입력하면 커서를 다음 줄로 옮기고 입력모드로 전환한다.

대문자 O를 입력하면 해당 줄 위에 빈줄을 만들고, 커서를 그쪽으로 이동하여 입력모드로 전환한다.

 

 

3. 명령모드(Command mode)

명령모드는 텍스트 파일을 저장, 검색 등을 하기 위한 모드이다.

 

명령모드 전환하기

':' 키를 눌러서 전환한다.

 

 

명령어

3-1. 파일 저장하기: w(write)

"w 파일이름"

이미 저장된 파일을 열어서 편집하고 저장하는 것이라면, 명령모드에서 w만 입력하면 된다.

 

3-2. vim 종료하기:q(quit)

"명령모드에서 q" 또는 "일반모드에서 :q"

 

3-3. 파일 저장하고 종료하기: wq

명령모드에서 wq를 입력해주면 된다.

 

수정 후 저장하지 않고 종료 명령을 하면 에러가 뜨게 된다.

만약 저장하지 않고 종료하고 싶다면 'q!' 를 입력하면 된다. !는 강제 실행을 의미한다.

 

3-4. 텍스트 검색

명령모드로 전환 시에, 콜론 ':' 키가 아니라 슬래시 '/' 키를 눌러야 한다.

"/찾을단어" 를 입력하면 해당 단어가 있는 맨 위의 위치로 커서가 이동하게 된다.

이 상태에서 'n'을 누르면 아래쪽 방향으로 다음 단어가 있는 위치로 커서가 이동하게 된다.

대문자 'N'을 누르면 위쪽 방향으로 커서가 이동하게 된다.

 

3-5. 텍스트 치환

콜론 ':' 키로 명령모드로 들어간 후, s(substitute)를 입력한다.

":s/기존단어/새로운단어"

형태로 써주면 된다.

 

":%s/기존단어/새로운단어" 를 입력하면 각 줄의 모든 첫 번째 단어들이 새로운 단어로 바뀌게 된다.

만약, 각 줄의 첫번째 단어 뿐만 아니라 파일에 있는 모든 단어를 새로운 단어로 바꾸고 싶다면,

":%s/기존단어/새로운단어/g" 라고 입력하면 된다. g는 global을 의미한다.

 

":%s/기존단어/새로운단어/gc" 라고 입력하면 각 기존단어에 대해서 바꿀지 말지를 하나씩 결정하며 수정하게 된다.

c는 confirm을 의미하며, 바꿀지를 물어보는 내용이 떴을 때, 그냥 n를 누르면 다음 단어로 넘어가게 되고

y를 누르면 해당 단어는 새로운 단어로 바꾸게 된다.

 

 

4. 일반모드(Normal mode)

 

4-1. 커서 이동

커서 이동은 h, j, k, l를 눌러 각각 왼쪽, 아래쪽, 오른쪽, 위쪽으로 한칸씩 이동할 수 있다.

방향키로 하면 되지만, 옛날 컴퓨터에는 방향키가 없었기 때문에 이런 방식이 생겨났다.

 

숫자를 누르고 방향을 이동하는 키를 이동하면, 숫자에 해당하는 칸만큼 커서가 이동하게 된다.

숫자 0을 누르면 커서가 있는 줄의 맨 앞으로 이동하며, '$'키를 누르면 커서가 줄의 맨 뒤로 이동하게 된다.

파일의 맨 처음으로 가려면 'gg'라고 입력하면 되고, 대문자 'G'를 입력하면 파일의 맨 마지막 줄로 이동하게 된다.

사실상 이동은 home, end 키로도 가능하기 때문에 외울 필요는 없다. gg나 G 정도가 유용할 것 같다.

 

4-2. 텍스트 삭제

"x키"를 누르면 텍스트를 한 칸씩 삭제한다.

"숫자 + x키"를 누르면 숫자에 해당하는 칸만큼 문자를 삭제하게 된다(공백 포함)

"dd"를 입력하면 한 줄 전체를 삭제한다.

"숫자 + dd"를 누르면 숫자에 해당하는 줄만큼 줄을 삭제하게 된다.

 

4-3. 작업 취소

이전 작업을 취소하기 위해서는 'u(undo)' 키를 누르면 된다.

여러 번 누르면 여러 번 이전 작업으로 돌아가게 된다.

 

5. 비주얼 모드

5-1 비주얼 모드 전환

비주얼모드로 들어가기 위해서 "v키"를 누르면 된다.

비주얼 모드에서 방향키를 누르면 block이 지정된다.

 

5-2. 복사&붙여넣기

block이 지정된 상태에서 x를 누르면 block 지정된 영역만 삭제된다. 삭제 후에는 바로 일반모드로 전환된다.

block이 지정된 상태에서 "y(yank)"를 누르면 복사가 되며, 일반모드로 전환된다.

복사가 된 상태에서 "p(paste)"를 입력하면 붙여넣기가 되는데,

소문자 p키는 커서 다음 칸에 붙여넣고, 대문자 P키는 해당 커서 이전 칸부터 붙여넣어진다.

 

대문자 V키를 누르면 줄 단위로 블록을 지정할 수 있으며, 방향키를 누름에 따라서 여러 줄을 선택할 수 있다.

대문자 V 모드에서 붙여넣기 p, P를 하면 다음 칸, 이전 칸이 아니라 다음 줄, 이전 줄을 기준으로 붙여넣기가 된다.

 

5-3. 잘라내기

잘라내기

block이 지정된 상태에서 "d(delete)"를 누르면 삭제가 되며,

이 상태에서 p 또는 P를 누르면 붙여넣기가 된다.

 

 

 

728x90
반응형