光标线在ViM中高亮显示,仅高亮显示行号和行首/行尾的空格/制表符

光标线在ViM中高亮显示,仅高亮显示行号和行首/行尾的空格/制表符,vim,cursor,line,highlight,Vim,Cursor,Line,Highlight,我使用ViM:高亮显示光标线来更改当前行上的背景颜色。但有时文本不可读 我想突出显示,只能改变整个行的背景颜色,除了文本(将字符之间的空格/制表符计算为文本) 这可行吗?如果是,如何设置?据我所知,可能没有直接支持设置光标线的高亮显示方式 但是,我有一个诀窍来做你想做的事。也就是说,高亮显示光标线后,我们可以将一行中标题/尾随空格的颜色设置更改为当前“背景”和“前景” 一个明显的缺点是,从“线的末端”到“vim窗口的边界”的部分仍将绘制为cursorline设置的颜色。如果对您来说很难看,您可以

我使用ViM:高亮显示光标线来更改当前行上的背景颜色。但有时文本不可读

我想突出显示,只能改变整个行的背景颜色,除了文本(将字符之间的空格/制表符计算为文本)


这可行吗?如果是,如何设置?

据我所知,可能没有直接支持设置光标线的高亮显示方式

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

一个明显的缺点是,从“线的末端”到“vim窗口的边界”的部分仍将绘制为cursorline设置的颜色。如果对您来说很难看,您可以只通过设置光标线的guifg来更改光标线的高光设置,如:

:highlight CursorLine guifg=red guibg=background 
也许还有其他简洁的解决方案,但这就是我现在能想到的


希望这能有所帮助。

我找到了解决办法-

关于@Zhaojun的回答:这不是我想要的(同样
/^\s\+\s\+$/
也没什么作用,也许它应该是
/^\s\+\\\\\\\\\\\\\+$/

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

然而,这对行末尾的尾随空格不起作用,但我通常会删除它们

为了使它们可见,我使用以下命令

:highlight EndSpaces guibg=green
:match EndSpaces /\s\+$/

/^\s\+\s\+$/表示它同时匹配前导空格和尾随空格。“|”是“或”,因此不能作为“\|”转义。在发布我的解决方案之前,我做了一些基本测试,它很好地匹配了前导空格和尾随空格。所以,我不知道为什么它对你不起作用。也许,您可以在这里粘贴一些文本,这样我就可以找出原因。“|”不是imho还是vim的regex方言(:help regex,/|,/\ \ \))一些示例代码:“在os.environ.keys()中导入os\n for e:\n\t打印e“抱歉对“|”做了错误的声明”。对于您的问题,一个更简单的解决方案可能只是将“guifg”设置为不同的颜色,并使“guibg”保持不变。像::highlight CursorLine guifg=red guibg=background在这个解决方案中,所有的空格都将被忽略,因为它们将显示为背景色,所以我们根本不需要匹配这些空格。
:highlight CursorLine gui=none guibg=grey10
:set CursorLine

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