如何将Vim高亮行更改为非下划线?


91

在某些配色方案中,当前行突出显示了更改背景,而在另一些颜色方案中,例如“沙漠”,当前行带有下划线。

我想将“沙漠”中的当前行突出显示更改为使用其他背景颜色,而不是使用下划线。我怎样才能做到这一点?

我的.vimrc

set cursorline
highlight Cursorline cterm=bold

更新:.vimrc解决了问题

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

7
可能是因为问题的措辞不佳。我可以自由地重写它以澄清该声明,并且还消除了反对票。
ib。

Answers:


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

desert是您的配​​色方案。(应该优先出现)
放在您的~/.vimrc


4
如果要在vimrc中的这些行之后加载颜色方案,则新的颜色方案可能会清除问题。在尝试放入vimrc之前,先在Vim命令行上进行测试。
赫伯特·西兹

我知道如何解决。在您的代码中,我们应将下划线更改为粗体!
阿什姆

3
@Idigas colorcolorscheme
kev

1
这在gvim或vim-gtk中效果很好。但是在终端vim中,它仅从当前行中删除下划线。它不会突出显示当前行(至少不适合我!)。
Omid Kamangar

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-256color以使256种颜色起作用。完整的颜色图表在这里:upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
顺便说一句set cursorline,您的.vimrc摘录中缺少该内容。花了我10分钟弄清楚了:)
apurkrt

13

如果要打开下划线,请使用以下任一方法:

: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保存当前的colorcheme名称。通过会话还原在程序启动过程中将其还原。但是,由于会话还原通常是在运行.vimrc之后完成的(通常使用通过'autocmd VimEnter *'调用的函数),因此默认情况下,.vimrc中的光标线突出显示设置将针对还原的colorcheme进行重置。

通过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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.