Vim : Visual Block. Comment / Uncomment 일괄 작업.

** 원글 : 이글루스 2017.10.14
아주 살짝만 바꿨다.


GUI 기반 에디터에서는 대부분 제공하는 Column 선택 기능. 물론 이미 폐기된 gedit 엔 없었지만.(없었나?)
Geany, Atom, VS Code, Kate 등등 유명한 편집기에선 대부분 이 기능을 쓸 수 있다. 참고로 Atom/VS Code 에선 Ctrl+Shift+/, Kate 에선 Ctrl+Shift+B 이다.

오래된, 그러나 아직도 진화 중인 Vim 에도 당연히 이 기능이 있다. (다만, vim-tiny 로는 안되고, vim-basic 이상은 돼야 이 기능이 있는 모양이다. 기본 vim 으로 해봤더니 안되는 듯 하다.) 이름하여 Visual Block. 그냥 v 를 누르면 일반 Visual 환경(行 선택)이 되고, Ctrl+v 로 하면 列 선택을 할 수 있는 Visual Block 환경이 된다.

이렇게 전환한 다음, 원하는 구간을 화살표 키로 선택하고, Shift+i (즉, 대문자 I) 를 누른다. 그런 다음, 원하는 문자(예를 들어 #)를 넣으면 전 구간에 # 가 입력된다고 한다.

그런데…

Shift+i 를 누르면 선택한 구간 맨 첫 줄에만 # 글자가 입력된다. 뭐야 이거???? 하고 욕지거리가 나왔는데..
중요한 건 작업을 끝내고 Esc 를 누르고 잠깐 기다려야 한다는 점이었다. 즉, 첫 부분에만 입력이 되는 건 지극히 정상이다.

정리하자면,

  • Ctrl+v 로 Visual Block 진입.
  • 화살표로 구간 선택
  • Shift+i 로 입력
  • Esc 로 ‘적용’

만약, # 를 일괄 삭제하려면, 역시 Visual Block 으로 진입한 후 ‘#’ 를 모두 선택한 다음, x 를 누른다.


참고로, 위 이미지(Animated GIF)는 Peek 라는 도구를 사용해서 만들었다. Flatpak 과 AppImage 로 제공하고 있고, 고맙게도 우분투 PPA 도 있다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.