전체 옵션 열어보기


모든 소프트웨어들처럼 vim도 사용자 입맛에 맞게 튜닝이 가능하도록 다양한 옵션을 갖고 있다. 당연한 이야기지만 이 모든 옵션들을 다 숙지할 필요는 없다. 필요한 옵션을 찾아서 그때그때 적용하는 것으로도 vim을 잘 쓰는데 충분하다.

 

그럼에도 vim 옵션에 대해서 언급하지 않으면 vim이 다른 에디터처럼 다양한 메뉴를 제공해주는 것도 아니어서 초심자들은 옵션이 있는지도 모르고 지나갈 수도 있다(실은 제가 그랬습니다). 그러니 몇 가지를 우선 짚어보자.

 

우선vim에서 옵션이란 것이 어떤 것이 있는지 확인하는 것이 먼저일 것이다.

 

vim의 모든 옵션을 보고 싶으면 명령 라인으로 들어가서 다음의 명령어를 입력하면 된다. 


:set all


명령어를 입력하면 다음의 사진과 같이 모든 옵션들이 표시된다. 



vim 옵션의 종류


위의 사진에서 정말 많은 옵션들을 확인할 수 있다. 옵션을 한 페이지에 모두 보여줄 수 없어 화면 하단에는 -- -- 라는 표시가 나타나 있다. 이 상태에서 [Enter] 를 치면 한 줄씩 화면이 내려가고, [Space] 를 누르면 한 화면씩 내려간다. 화살표의 , j, k 모두 한 줄씩 화면을 옮기면서 원하는 옵션을 찾을 수 있도록 되어 있다. q 키를 누르면 바로 원래 화면으로 돌아간다.

 

보이는 옵션들 중에서 몇 가지 특징이 보이는데, 우선 옵션들이 열을 지어 나열되어 있다. 이 중 글자가 열을 맞추지 않고 튀어나온 옵션들이 보이는데 이는 모두 'no'라는 글자가 앞에 붙은 경우임을 알 수 있다. no'라는 글자를 제외하고 보면 옵션들이 알파벳순으로 나열되어 있음을 확인할 수 있다. 등호(=)가 붙어있는 옵션이 있고, 등호(=)가 있는 옵션들 중에서 등호에 어떤 값이 연결되어 있는 경우와 그렇지 않은 경우로 나누어진다.

 

이는 다음과 같은 것이다.


vim에서 옵션은 그저 키고 끄는 것만 있는 즉, on/off만 있는 옵션특정 값을 갖는 옵션두 종류로 크게 나눠볼 수 있다.

 

on/off만 가능한 옵션들은 off가 되었을 경우에는 앞에 'no'를 붙인다. 

 

, 등호(=)가 붙어 있는 옵션들은 어떤 값을 갖는 옵션들이다. 물론, 이 등호(=) 뒤에 값이 설정되어 있지 않은 옵션들은 활성화되지 않은 옵션이다.


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


020 vim의 옵션 개요.apkg


블록 지정 후 커서 이동


앞서 포스팅에서는 블록 지정이 가능한 모드로 진입하면서 화살표 키h, j, k, l 키를 사용하는 것만 이야기했지만 vim명령 모드에서 사용하는 이동 관련 키들이 대부분 먹는다. 그래서 명령 모드에서 이동하듯이 단어 단위 행단위 또는 문장 단위 등으로 그냥 이동하면 된다.


, :[n] 명령을 쓰게 되면 원하는 행으로 바로 이동하지만 블록 지정이 풀리게 되므로 쓰지 않는 것이 좋다. 


블록 지정 후 사용 명령어


작업하고자 하는 부분을 블록으로 지정한 후 다음과 같은 작업을 수행한다. 


y → 블록 지정된 영역 복사

d → 블록 지정된 영역 삭제

> 라인() 앞에 탭 삽입

< 라인() 앞에 탭 삭제


~ 대소문자 상호 전환(대문자는 소문자로, 소문자는 대문자로 전환)

대문자 U 모두 대문자로 만듦

소문자 u 모두 소문자로 만듦(블록으로 지정되어 있는 영역에서 명령 취소가 아님)


콜론(:) 블록으로 지정된 영역에 한해 명령 라인 명령 (블록 지정된 상태에서 콜론(:)키를 누르면 명령 라인에 :'<,'>와 같은 형태가 자동으로 나타난다. '<,'> 표시는 블록으로 지정된 범위를 의미한다. 따라서 이 상태에서 명령 라인의 명령어를 다음처럼 작성하면 블록으로 지정된 범위에만 명령 라인 명령을 실행할 수 있다.

:'<,'>w test.txt 블록으로 지정된 부분만 test.txt 파일로 저장


 

Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



블록 지정


한글이나 워드 등을 써본 사람이라면 [Shift]를 누른 채 화살표 키를 눌러서 원하는 영역을 지정해서 복사, 삭제, 잘라내기 등을 해본 경험이 있을 것이다. 이때 우리가 지정한 영역이 반전되어 아래와 같이 나타나는데 이를 블록이라고 한다.


블록으로 지정된 부분  ← 블록으로 지정된 모습


이렇게 블록으로 지정하는 것이 얼마나 편한지는 이야기하지 않아도 잘 알 것이다.

 

vim은 다양한 상황에서 쉽게 블록 지정이 가능하도록 3가지 모드를 제공하고 있어서 이 사용법에 익숙해지면 마우스를 쓰지 않고도 편하게 다양한 상황에서 블록을 지정하여 편집할 수 있게 된다. 

 

vim에서 블록을 지정할 수 있게 해주는 3가지 모드는 비주얼 모드, 비주얼 라인 모드, 비주얼 블록 모드라고 부른다.



비주얼 모드(VISUAL MODE)


우리가 흔히 아는 블록 지정 방식이다. 원래 커서 위치에서 옮겨진 커서 위치까지 순차적으로 글자 단위로 블록이 지정된다


비주얼 모드로 진입하려면 명령 모드에서 소문자 v 키를 누르면 된다


명령 모드에서 소문자 v 키 → 비주얼 모드로 진입


이 때편집창 하단에 비주얼(또는 VISUAL) 이라는 표시가 뜨고 이 상태에서 화살표 키나 h, j, k, l 키들을 눌러 커서를 움직이면 원래 커서 위치에서 옮겨진 커서 위치까지 글자 단위로 아래의 그림처럼 블록이 지정된다



비주얼 라인 모드(VISUAL LINE MODE)


비주얼 라인 모드는 그야말로 라인(행) 단위로 지정되는 모드다. , 블록은 무조건 하나의 라인(행) 단위로 생기는 것이다


비주얼 라인 모드로 진입하려면 명령 모드에서 대문자 V 키를 누르면 된다


명령 모드에서 대문자 V 키 → 비주얼 라인 모드로 진입


이 때, 편집창 하단에 비주얼 라인(또는 VISUAL LINE)이라고 표시가 뜨고 이 상태에서 화살표 키h, j, k, l 키들을 눌러 커서를 움직이면 원래 커서 위치에서 옮겨진 커서 위치까지 라인() 단위로 아래의 그림처럼 블록이 지정된다



비주얼 블록 모드(VISUAL BLOCK MODE)


비주얼 블록 모드는 현재 커서 위치에서 옮겨진 커서 위치까지 사각형의 블록을 지정할 수 있게 해준다. 그래서 열 모드(column mode)라고도 불리우는데 이는 일반적인 에디터와 다르게 열단위로도 블록 지정이 가능하기 때문이다. 이를 이용하면 엑셀에서 스프레드 시트를 셀 단위로 지정하여 조작하는 것과 비슷한 효과를 얻을 수 있다. 


비주얼 블록 모드로 진입하려면 명령 모드에서 대문자 <Ctrl+v> 키를 누르면 된다.


명령 모드에서 <Ctrl+v> 키 → 비주얼 블록 모드로 진입


이 때, 편집창 하단에 비주얼 블록(또는 VISUAL BLOCK)이라고 표시가 뜨고 이 상태에서 화살표 키h, j, k, l 키들을 눌러 커서를 움직이면 원래 커서 위치에서 옮겨진 커서 위치까지 사각형의 박스를 그리며 아래의 그림처럼 블록이 지정된다.

 

Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


018 블록 지정의 비주얼 모드.apkg


+ Recent posts