2

我使用 ViM 的 :highlight CursorLine 来改变当前行的背景颜色。但有时文字不可读。

我想要一个只能更改除文本之外的整行的背景颜色的突出显示(将字符之间的空格/制表符计为文本)。

可行吗?如果是,如何?

4

2 回答 2

2

据我所知,可能没有直接支持设置光标线如何突出显示。

但是,我有一个做你想做的事的诀窍。也就是说,在我们高亮光标线之后,我们可以将一行中的标题/尾随空格的颜色设置更改为当前的“背景”和“前景”。

:match NoHighLight /^\s\+|\s\+$/ 
:highlight NoHighLight guibg=background guifg=foreground

一个明显的缺点是从“行尾”到“vim 窗口边界”的部分仍然会被绘制为光标线设置的颜色。如果它对您来说很难看,您可以通过仅设置其 guifg 来更改 cursorline 的突出显示设置,例如:

:highlight CursorLine guifg=red guibg=background 

也许还有其他巧妙的解决方案,但这就是我现在能想到的。:)

希望那些对你有帮助。

于 2010-05-05T05:01:19.230 回答
1

我找到了解决方案-

关于@Zhaojun的回答:这不是我想要的(也/^\s\+|\s\+$/没有做太多,也许应该是/^\s\+\|\s\+$/

我找到的解决方案是(只是 elflord 配色方案的示例颜色)

:highlight CursorLine gui=none guibg=grey10
:set CursorLine

:highlight NoHighLight guibg=background 
:match NoHighLight /\S\+\(\s\+\|$\)/

但是,它对于行尾的尾随空格效果不佳,但我通常会删除它们

为了使它们可见,我使用以下内容

:highlight EndSpaces guibg=green
:match EndSpaces /\s\+$/
于 2010-05-05T21:11:49.953 回答