티스토리 뷰
리눅스에서 개발하실 때 vim(vi)을 많이들 사용하실텐데요.
vim은 개발자가 어떻게 사용하느냐에 따라 세상에서 가장 멍청한 에디터가 될 수도, 세상에서 가장 똑똑한 에디터가 될 수도 있습니다. :)
오늘은 vim에서 주석을 단축키로 달 수 있는 방법을 알려드리겠습니다.
구글에 검색해서 여러 글들을 보셨다면 아시겠지만, 다양한 방법들이 있는데 이것은 제가 사용하는 방법입니다!
vim의 편리한 기능중 하나인 Key Mapping을 이용한 방법입니다.
먼저 vimrc에 입력해야 될 스크립트를 말씀드리고 간략한 설명을 하겠습니다.
vi를 이용해 vimrc를 열어줍시다.
$ vi ~/.vimrc
그리고 아래의 스크립트를 적당한 곳에 입력합니다.
"============== 주석 매크로 ==============
func! CmtOn() "주석 on
exe "'<,'>norm i//"
endfunc
func! CmtOff() "주석 off
exe "'<,'>norm 2x"
endfunc
vmap <c-c> <esc>:call CmtOn() <cr>
vmap <c-x> <esc>:call CmtOff() <cr>
nmap <c-c> <esc>v:call CmtOn() <cr>
nmap <c-x> <esc>v:call CmtOff() <cr>
이렇게 작성했으면 저장하고 나옵니다.
컨트롤+C : 주석 달기
컨트롤+X : 주석 지우기
가 되며, 비주얼블록을 이용하면 여러줄을 동시에 주석처리할 수 있습니다.
비주얼블록은 v키나 V키를 눌렀을때 생기는 vim의 블록을 뜻합니다~
참고로 이 스크립트는 C의 주석 기준으로 작성되었기 때문에 // 를 주석부호로 사용합니다.
그리고 아래의 상세 설명은 필요하신 분만 보셔도 됩니다~
상세설명)
2개의 함수와 4개의 키맵 옵션이 있는 것을 알 수 있습니다.
'<,'> 는 vim의 비주얼모드일때 비주얼블록의 범위를 뜻합니다. 따라서 v키를 이용하여 비주얼블록을 쌓은 범위에 특정한 명령을 내리기 위함입니다.
norm i// 는 노말모드에서 // 를 추가하겠다는 의미이고,
norm 2x 는 노말모드에서 앞의 2글자를 지우겠다는 의미입니다.
또한 동일한 단축키로 한줄 주석처리나, 여러줄 주석처리를 함께 사용하기 위해 vmap과 nmap을 이용하였습니다.
vmap은 visual/select 모드에서의 mapping 키를 지정하는 옵션이고
nmap은 normal 모드에서의 mapping 키를 지정하는 옵션입니다.
nmap에 v가 하나 더 붙은 것을 확인할 수 있습니다. 커서가 위치한 라인에 스스로 비주얼모드를 걸어서 주석함수를 불러오기 위함입니다.
'Linux' 카테고리의 다른 글
터미널에서 출력되는 색 다루는 방법. 부제: 나만의 ls 만들기 (0) | 2015.07.27 |
---|---|
[커널 컴파일] 우분투 14.04환경에서 qemu에 ARM리눅스 에뮬레이터 환경 만들기 (7) | 2015.07.26 |
리눅스 메뉴얼 섹션 번호의 의미 (3) | 2014.12.18 |
우분투 12.04 could not write bytes: broken pipe 오류 관련 (1) | 2014.03.22 |
우분투 12.04 gcc, g++ 최신 버전 설치하기 (1) | 2014.03.19 |
- Total
- Today
- Yesterday
- Zone.js
- ZONES
- 챗봇
- 우분투 16.04
- lua table
- Swift
- terminal 색
- qemu linux arm
- itoa
- git proxy
- 안시 색상
- zone
- angular2
- git 설정
- 스위프트
- Angular
- typeScript
- JavaScript
- NgZone
- ansi color
- 안시 컬러
- 타입스크립트
- QT
- observable
- ECMA2015
- C언어
- vim
- 폰트 조정
- 리눅스 터미널 색상
- Rx.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |