Virsor中的CursorLine突出显示,仅突出显示行的开头/结尾处的行号和空格/制表符

时间:2010-05-04 22:22:37

标签: vim cursor line highlight

我使用ViM:突出显示CursorLine以更改当前行的bg颜色。但有时文字不可读。

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

可行吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:2)

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

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

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

一个明显的缺点是从“行尾”到“vim窗口边界”的部分仍将被绘制为cursorline设置的颜色。如果它对你来说很难看,你可以通过仅设置guifg来改变cursorline的高亮设置,如:

:highlight CursorLine guifg=red guibg=background 

也许存在其他整洁的解决方案,但这就是我现在能想到的。 :)

希望有所帮助。

答案 1 :(得分: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\+$/