【发布时间】:2011-02-15 16:42:19
【问题描述】:
我使用 ViM 的 :highlight CursorLine 来改变当前行的背景颜色。但有时文字不可读。
我想要一个只能更改除文本之外的整行的背景颜色的突出显示(将字符之间的空格/制表符计为文本)。
可行吗?如果是,怎么做?
【问题讨论】:
我使用 ViM 的 :highlight CursorLine 来改变当前行的背景颜色。但有时文字不可读。
我想要一个只能更改除文本之外的整行的背景颜色的突出显示(将字符之间的空格/制表符计为文本)。
可行吗?如果是,怎么做?
【问题讨论】:
据我所知,可能没有直接支持设置光标线的突出显示方式。
但是,我有一个技巧可以让你随心所欲。也就是我们高亮光标线后,我们可以将一行中的标题/尾随空格的颜色设置更改为当前的“背景”和“前景”。
:match NoHighLight /^\s\+|\s\+$/
:highlight NoHighLight guibg=background guifg=foreground
一个明显的缺点是从“行尾”到“vim 窗口的边界”的部分仍然会被绘制为光标线设置的颜色。如果它对你来说很难看,你可以通过只设置它的 guifg 来改变 cursorline 的高亮设置,比如:
:highlight CursorLine guifg=red guibg=background
也许还有其他巧妙的解决方案,但这是我现在能想到的。 :)
希望能有所帮助。
【讨论】:
我找到了解决办法-
关于@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\+$/
【讨论】: