본문 바로가기
개발

[vim] 커서 라인 하이라이트하기 (cursorline, cursorcolumn)

by 77monkey 개발자 2023. 8. 20.
반응형

최근에 vimrc 꾸미는 것에 재미를 붙였습니다. cursorline과 cursorcolumn은 vim 편집기에서 현재 편집 중인 줄에 하이라이팅을 표시해 주는 옵션입니다. 이를 설정하여 현재 편집 중인 줄을 더 쉽게 확인할 수 있습니다.

 

.vimrc 생성하기

.vimrc 만드는 방법은 다음과 같습니다. 

$ touch ~/.vimrc

 

cursorline, cursorcolumn 설정하기

다음의 명령어를 입력하면 .vimrc 파일이 열리게 됩니다.

$ vi ~/.vimrc

새로 만든 경우에는 아무 내용도 없을텐데, 아래와 같이 작성해 줍니다.

set cursorline
set cursorcolumn

다 작성을 하면 아래와 같이 ":" 콜론을 입력하고 w를 입력합니다. 이러면 방금 작성한 내용이 저장됩니다. 
그리고 ":" 콜론을 입력하고 "source %"를 입력하면 vim에 적용이 됩니다.

:w
:source %

아래 그림은 위와 같이 설정했을 때 linux-2.6에서 md5.c 파일에서 보이는 화면입니다. 참고로 각자 사용하는 os에 따라서 default 설정은 다릅니다.

linux-2.6/crypto/md5.c md5_mod_fini() 기본 설정

커서 라인 색깔 변경하기

그런데 이렇게 보면 대게 밋밋하고 잘 보이지 않습니다. 
원하시는 색깔을 넣는 방법에 대해서 알아보도록 하겠습니다. 
hi는 highlight의 약자입니다. 처음에 검색했을 때 아무도 안 알려줘서 이것도 검색하느라 시간이 좀 걸렸습니다.

hi CursorLine   cterm=bold ctermbg=darkgray ctermfg=NONE
hi CursorColumn cterm=bold ctermbg=darkgray ctermfg=NONE

cterm에는 아래와 같은 속성을 가질 수 있습니다.

bold
underline
reverse
inverse
italic
standout
NONE

ctermbg는 cursor가 있는 행 또는 열에 대한 바탕을 의미합니다. 
ctermfg는 cursor가 있는 글씨 색을 의미합니다. 

아래 그림은 위와 같이 설정했을 때 linux-2.6에서 md5.c 파일에서 보여지는 화면입니다. 

linux-2.6/crypto/md5.c md5_mod_fini() 설정 변경

원하시는 색은 아래 사이트에서 확인하셔서 바꾸시면 됩니다.

*cterm-colors*
    NR-16   NR-8    COLOR NAME 
    0     0     Black
    1     4     DarkBlue
    2     2     DarkGreen
    3     6     DarkCyan
    4     1     DarkRed
    5     5     DarkMagenta
    6     3     Brown, DarkYellow
    7     7     LightGray, LightGrey, Gray, Grey
    8     0*     DarkGray, DarkGrey
    9     4*     Blue, LightBlue
    10     2*     Green, LightGreen
    11     6*     Cyan, LightCyan
    12     1*     Red, LightRed
    13     5*     Magenta, LightMagenta
    14     3*     Yellow, LightYellow
    15     7*     White
 

Vim documentation: syntax

vimdoc.sourceforge.net

혹시나 반영이 안 되신다면

저는 위와 같이 설정을 했는데 처음에는 반영이 되지 않아서 골치가 아팠습니다. 분명히 검색한 대로 했는데 왜 반영이 안 될까 싶었습니다. 처음에는 :를 넣어서 "hi CursorLine ~"을 입력했는데 반영이 되고, 직접 입력하면 반영이 되지 않아서, 정말 곤욕스러웠죠. 이유는 바로 이것이었습니다. 
바로 highlist 설정을 하고 난 다음에, colorscheme을 했기 때문입니다. 
이 순서를 바꿔주면 바로 해결됩니다.

 

설정이 반영 안 되는 경우

set cursorline
set cursorcolumn

hi CursorLine   cterm=NONE ctermbg=darkgray ctermfg=NONE
hi CursorColumn cterm=NONE ctermbg=darkgray ctermfg=NONE

colorscheme jellybeans

 

설정이 반영된 경우

set cursorline
set cursorcolumn

colorscheme jellybeans

hi CursorLine   cterm=NONE ctermbg=darkgray ctermfg=NONE
hi CursorColumn cterm=NONE ctermbg=darkgray ctermfg=NONE

 

마무리

내가 수정하고 있는 곳이 강조되면 코드를 수정할 때 큰 도움이 됩니다. 간혹 내 커서가 어디에 있는지 확인이 안 되고, 잘못 입력했는데 놓치는 경우도 있기 때문입니다. 커서 라인 강조하기를 통해서 여러분도 즐거운 개발하시길 바랍니다.

반응형

'개발' 카테고리의 다른 글

[기타] fastboot 설치부터 명령어까지  (0) 2023.09.10
[vim] 줄(line) 번호 설정하기  (0) 2023.08.22
EntryPoint  (0) 2023.08.14
내가 사용하는 IDE  (0) 2023.08.10
[javascript] 프런트엔드(Front-End) vs 백엔드(Back-End)  (0) 2021.09.26