안녕하세요 피터입니다.

오늘은 vim에서 범위를 지정하는 방법을 소개해드리겠습니다.

앞어 강좌에서 복사, 붙여넣기, 삭제 등의 기능을 살펴봤는데요. 이 기능들을 좀 더 효과적으로 사용하기 위해서는 범위 지정에 대해 알고 있어야 합니다. 


범위 지정하기

vim에서 범위를 지정하는 방법은 크게 두 가지 방법이 있습니다. 

첫 번째 방법명령행 모드에서 명령어를 입력할 때 범위를 지정하는 방법이고, 

두 번째 방법비주얼 모드에서 범위를 선택해서 지정하는 방법입니다. 


명령어를 특정 범위에 적용하는 동작은 같지만 사용하는 방법이 다릅니다. 

한 가지 방법만 알고 있어도 사용하는데 크게 문제는 없으나, 상황에 따라 더 편리한 방법이 존재하고 별로 어렵지도 않으니 두 가지 방법 모두 익혀두시고 사용하시기 바랍니다.


명령행 모드에서 범위 지정하기

우선 범위 지정할 때 사용되는 특수 기호들에 대해 알아보겠습니다.

 특수기호

 설명

 .

 현재 행.

 $

 마지막 행.

 +#

 현재 위치에서 #만큼 아래 행.

 -#

 현재 윛치에서 #만큼 위 행.

 %

 파일 전체.

위 특수기호를 활용하면 명령행 모드에서 효과적으로 범위 지정을 할 수 있습니다.

아래에 몇 가지 예를 소개합니다.

 명령어 (명령행 모드)

 설명

 :20d

 20행 삭제(잘라내기). 

 :10,20d

 10~20행 삭제(잘라내기). 

 :10,$d

 10~마지막 행 삭제(잘라내기). 

 :%y

 파일 전체 복사. 

 :.,+10y

 현재 행부터 아래 10행 복사.

위 명령어를 응용해서 몇 번 범위 지정을 해보면 금새 익숙해질겁니다.


비주얼 모드에서 범위 지정하기 (영역 선택하기)

앞서 vim 모드 이해 편에서 비주얼 모드에 대해 배웠습니다.

[Vim 강좌 - 1] vim 모드 이해


비주얼 모드로의 전환은 또는 V 키를 통해 가능합니다.


v(소문자)는 현재 커서를 시작으로 블록을 지정할 수 있습니다.


 V(대문자)는 현재 커서가 위치한 행부터 행 단위로 블록을 지정할 수 있습니다.



그리고 vim은 열단위 블록 지정을 지원합니다. ctrl + v 키 or ctrk + q (윈도우 환경에서는 ctrl + v 가 붙여넣기 동작이므로 ctrl + q 를 사용하시면 됩니다)를 누르면 현재 커서를 기준으로 열(Column)단위로 블록을 지정할 수 있습니다.



비주얼 모드에서 범위를 선택 한 후 명령을 입력하면 선택한 범위에 대해 명령어가 동작합니다. 

이 같은 방법으로 좀 더 직관적으로 선택한 블록을 삭제(잘라내기), 복사할 수 있습니다. 


-Peter의 우아한 프로그래밍

여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 남겨주시면 감사하겠습니다.


블로그 이미지

Awesome PeterAhn

IT 정보 공유, 프로그래밍 지식 공유, 훌륭한 개발자가 되어보자