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

최근에 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

 

마무리

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

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

[Linux] pwd 명령어  (0) 2024.09.07
[Linux] which 명령어  (0) 2024.09.06
[Linux] man 명령어  (0) 2024.09.06
[Linux] ls 명령어  (0) 2024.07.20
[vim] 줄(line) 번호 설정하기  (0) 2023.08.22