Vim 하이라이트 라인이 밑줄이되지 않도록 어떻게 변경합니까?


91

일부 colorchemes에서는 현재 선 강조 표시가 배경을 변경하고 Desert와 같은 다른 선에서는 현재 선에 밑줄이 표시됩니다.

밑줄 대신 다른 배경색을 사용하도록 Desert에서 현재 선 강조 표시를 변경하고 싶습니다. 어떻게 할 수 있습니까?

.vimrc:

set cursorline
highlight Cursorline cterm=bold

업데이트 : .vimrc문제 해결

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

7
아마도 질문에 대한 불행한 표현 때문일 것입니다. 나는 성명을 명확히하기 위해 그것을 다시 쓸 자유를 취했고 반대표도 무효화했다.
ib.

답변:


92
color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desert당신의 colorscheme입니다. (먼저 와야합니다)
그것을 당신의~/.vimrc


4
vimrc의 해당 라인 뒤에 colorscheme을로드하는 경우 새로운 colorscheme이 문제를 해결할 수 있습니다. vimrc를 입력하기 전에 Vim 명령 줄에서 테스트하십시오.
Herbert Sitz 2011

나는 그것을 고치는 방법을 알고있다. 코드에서 밑줄을 굵게 변경해야합니다!
ashim

3
@Idigas은 color의 약자colorscheme
케빈

1
이것은 gvim 또는 vim-gtk에서 잘 작동합니다. 그러나 터미널 vim에서는 현재 줄에서 밑줄 만 제거합니다. 현재 줄을 강조 표시하지 않습니다 (적어도 나를 위해!).
Omid Kamangar 2013 년

66

이것은 나를 위해 (모든 터미널에서) 더 잘 작동합니다.

:hi CursorLine   cterm=NONE ctermbg=darkred ctermfg=white

터미널 색상 설정 : 배경색 -ctermbg , 텍스트 색상 -ctermfg . 그래픽 창에서 사용하려면 매개 변수 추가guibg=darkred guifg=white

다음 명령을 사용하여 해당 열을 강조 표시 할 수도 있습니다.

:set cursorcolumn

편집기에서 하나의 키를 눌러 강조 표시를 켜고 끄는 것이 유용합니다. vimrc에 다음 행을 추가하십시오 .

:nnoremap H :set cursorline! cursorcolumn!<CR>

'H'를 입력 하면 강조 표시를 켜고 끌 수 있습니다 (원하는 경우 다른 키에 매핑).

기사에서 더 많은 정보를 찾을 수 있습니다 : http://vim.wikia.com/wiki/Highlight_current_line


9
그리고 cterm=NONE궁극적으로 커서 줄의 밑줄을 제거하는 설정입니다 (제 경우).
tbloncar 2014

1
H기본적으로 버퍼의 맨 위로 이동하는 데 사용됩니다.
quapka

20

터미널의 gvim에서 얻은 것과 유사한 스타일을 위해 구문 강조 표시를 유지합니다.

" first thing is entering vim mode, not plain vi
set nocompatible
" force 256 colors on the terminal
set t_Co=256
" load the color scheme before anything
colorscheme darkblue " or desert... or anything
" the syntax cmd is when the colorscheme gets parsed, i think..
syntax on
" might not be on by default, this enable the cursor line feature
set cursorline

" set the prefered colours, pick one line here only.
" dark grey, better you can get if you don't support 256 colours
hi CursorLine   cterm=NONE ctermbg=8 ctermfg=NONE
" light grey, no 256 colors
hi CursorLine   cterm=NONE ctermbg=7 ctermfg=NONE
" dark redish
hi CursorLine   cterm=NONE ctermbg=52 ctermfg=NONE
" dark bluish
hi CursorLine   cterm=NONE ctermbg=17 ctermfg=NONE
" very light grey
hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE
" yelowish
hi CursorLine   cterm=NONE ctermbg=229 ctermfg=NONE
" almost black
hi CursorLine   cterm=NONE ctermbg=234 ctermfg=NONE

export TERM=xterm-256color256 색이 작동 하도록 환경 변수 를 설정할 수도 있습니다. 전체 컬러 차트는 여기에 있습니다 : upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
그런데 set cursorline.vimrc 발췌에서 누락되었습니다. 그것을 알아내는 데 10 분이
걸렸

14

밑줄을 켜려면 다음 중 하나를 사용하십시오.

:hi CursorLine cterm=underline
:hi CursorLine gui=underline

그렇지 않으면 다음 중 하나를 사용하십시오.

:hi CursorLine cterm=none
:hi CursorLine gui=none

8

커서 라인 강조 표시를 설정하는 데 비슷한 문제가 있었지만 vim 종료 중에 세션 정보를 저장하는 데 사용했던 mksession 명령 때문이었습니다. 이 세션은 파일 인수없이 실행되는 경우 프로그램 시작 중에 자동으로 복원됩니다.

이와 같은 .vimrc 설정이있는 사람은 .vimrc에 다음을 추가하여 커서 라인 강조 표시를 올바르게 설정할 수 있습니다.

function s:SetCursorLine()
    set cursorline
    hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()

이것이 작동하는 이유에 대한 약간의 설명. 다양한 버퍼 및 창 정보와 함께 mksession은 현재 colorscheme 이름을 저장합니다. 이것은 세션 복원을 통해 프로그램 시작 중에 복원됩니다. 그러나 세션 복원은 일반적으로 .vimrc가 실행 된 후에 수행되기 때문에 (일반적으로 'autocmd VimEnter *'를 통해 호출되는 함수 사용), .vimrc의 커서 라인 강조 표시 설정은 복원 된 colorscheme에 대해 기본값으로 재설정됩니다.

autocmd를 통해 호출되는 위의 함수는 모든 초기화가 완료된 후에 실행되므로 커서 라인 강조 표시를 성공적으로 설정합니다.

HTH.


0

끝줄을 추가해야합니다 .vimrc.

highlight lineNr term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

set cursorline

highlight CursorLine term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

highlight CursorLineNr term=bold cterm=none ctermbg=none ctermfg=yellow gui=bold
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.