안녕하세요 피터입니다.
오늘은 vim에서 범위를 지정하는 방법을 소개해드리겠습니다.
앞어 강좌에서 복사, 붙여넣기, 삭제 등의 기능을 살펴봤는데요. 이 기능들을 좀 더 효과적으로 사용하기 위해서는 범위 지정에 대해 알고 있어야 합니다.
범위 지정하기
vim에서 범위를 지정하는 방법은 크게 두 가지 방법이 있습니다.
첫 번째 방법은 명령행 모드에서 명령어를 입력할 때 범위를 지정하는 방법이고,
두 번째 방법은 비주얼 모드에서 범위를 선택해서 지정하는 방법입니다.
명령어를 특정 범위에 적용하는 동작은 같지만 사용하는 방법이 다릅니다.
한 가지 방법만 알고 있어도 사용하는데 크게 문제는 없으나, 상황에 따라 더 편리한 방법이 존재하고 별로 어렵지도 않으니 두 가지 방법 모두 익혀두시고 사용하시기 바랍니다.
명령행 모드에서 범위 지정하기
우선 범위 지정할 때 사용되는 특수 기호들에 대해 알아보겠습니다.
특수기호 |
설명 |
. |
현재 행. |
$ |
마지막 행. |
+# |
현재 위치에서 #만큼 아래 행. |
-# |
현재 윛치에서 #만큼 위 행. |
% |
파일 전체. |
위 특수기호를 활용하면 명령행 모드에서 효과적으로 범위 지정을 할 수 있습니다.
아래에 몇 가지 예를 소개합니다.
명령어 (명령행 모드) |
설명 |
:20d |
20행 삭제(잘라내기). |
:10,20d |
10~20행 삭제(잘라내기). |
:10,$d |
10~마지막 행 삭제(잘라내기). |
:%y |
파일 전체 복사. |
:.,+10y |
현재 행부터 아래 10행 복사. |
위 명령어를 응용해서 몇 번 범위 지정을 해보면 금새 익숙해질겁니다.
비주얼 모드에서 범위 지정하기 (영역 선택하기)
앞서 vim 모드 이해 편에서 비주얼 모드에 대해 배웠습니다.
비주얼 모드로의 전환은 v 또는 V 키를 통해 가능합니다.
v(소문자)는 현재 커서를 시작으로 블록을 지정할 수 있습니다.
V(대문자)는 현재 커서가 위치한 행부터 행 단위로 블록을 지정할 수 있습니다.
그리고 vim은 열단위 블록 지정을 지원합니다. ctrl + v 키 or ctrk + q (윈도우 환경에서는 ctrl + v 가 붙여넣기 동작이므로 ctrl + q 를 사용하시면 됩니다)를 누르면 현재 커서를 기준으로 열(Column)단위로 블록을 지정할 수 있습니다.
비주얼 모드에서 범위를 선택 한 후 명령을 입력하면 선택한 범위에 대해 명령어가 동작합니다.
이 같은 방법으로 좀 더 직관적으로 선택한 블록을 삭제(잘라내기), 복사할 수 있습니다.
-Peter의 우아한 프로그래밍
여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 남겨주시면 감사하겠습니다.
'프로그래밍 > Vim' 카테고리의 다른 글
[Vim] 대소문자 변경하기 (0) | 2019.10.31 |
---|---|
[Vim] 문자열 검색 및 바꾸기 (0) | 2019.10.29 |
[Vim] 이전 명령어 반복 수행 (1) | 2017.03.13 |
[Vim] 복사(Copy), 붙여넣기(Paste), 삭제(Delete), 실행취소(Undo) (1) | 2017.03.06 |
[Vim] 커서 이동 (0) | 2017.02.23 |