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

如何将Vim高亮线更改为非下划线?,vim,Vim,在一些配色方案中,当前行高亮显示会改变背景,而在其他配色方案中,如沙漠,当前行会加下划线 我想更改当前在沙漠中高亮显示的线条,以使用不同的背景色,而不是下划线。我该怎么做 我的.vimrc: set cursorline highlight Cursorline cterm=bold 更新:.vimrc,解决该问题 colorscheme desert set cursorline hi CursorLine term=bold cterm=bold guibg=Grey40 desert是

在一些配色方案中,当前行高亮显示会改变背景,而在其他配色方案中,如沙漠,当前行会加下划线

我想更改当前在沙漠中高亮显示的线条,以使用不同的背景色,而不是下划线。我该怎么做

我的
.vimrc

set cursorline
highlight Cursorline cterm=bold
更新:
.vimrc
,解决该问题

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40
desert
是您的配色方案。(应该排在第一位)
把它放在你的
~/.vimrc
中,这对我来说(在每个终端中)效果更好

它是终端的颜色设置:背景色-ctermbg,文本色-ctermfg。要在图形窗口中使用,请添加参数
guibg=darkred guifg=white

也可以使用以下命令高亮显示相应的列:

:set cursorcolumn
在编辑器中按一个键可以打开和关闭高亮显示。将这些行添加到您的vimrc

:nnoremap H :set cursorline! cursorcolumn!<CR>
:nnoremap H:设置光标线!诅咒之柱!
键入'H'将打开和关闭高亮显示(如果需要,将其映射到另一个键)

您可以在文章中找到更多信息:

对于类似于终端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

我在设置cursorline highlight时遇到了类似的问题,但我的问题是由于在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 vimcenter*”调用的函数),因此默认情况下,已恢复的colorscheme会重置.vimrc中的光标线高亮显示设置

通过autocmd调用的上述函数将在所有初始化完成后运行,从而成功设置光标线高亮显示


HTH.

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

:hi CursorLine cterm=underline
:hi CursorLine gui=underline
否则,请使用以下选项之一:

:hi CursorLine cterm=none
:hi CursorLine gui=none
您必须添加
.vimrc
结束行:
如果在vimrc中的这些行之后加载一个colorscheme,那么新的colorscheme可能会清除一些内容。在尝试放入vimrc之前,在Vim命令行上进行测试。我知道如何修复它。在您的代码中,我们应该将下划线改为粗体@Idigas
color
colorscheme
的缩写,它在gvim或vim gtk中运行良好。但在终端vim中,它仅删除当前行的下划线。它没有突出当前行(至少对我来说不是!)。可能是因为问题的措辞不恰当。我冒昧地重写了它,以澄清声明,并消除了反对票。而
cterm=NONE
是最终删除光标行下划线的设置(在我的例子中)默认情况下,
H
用于移动到缓冲区的顶部。您还可以为256种颜色设置环境变量
export TERM=xterm-256color
。完整的颜色图表在这里:最后一个适合我。
:hi CursorLine cterm=underline
:hi CursorLine gui=underline
:hi CursorLine cterm=none
:hi CursorLine gui=none
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