vim为listchars选项卡和空格设置颜色

时间:2014-06-15 17:41:38

标签: vim

在VIM中使用以下代码的概念 如何使标签为浅灰色背景,空格为蓝色背景

" part of ~/.vimrc
" highlight tabs and trailing spaces
set listchars=tab:>-,trail:-
set list

3 个答案:

答案 0 :(得分:22)

如果您在~/.vimrc中使用这些选项,那么您肯定已经阅读了:help 'list':help 'listchars'但是从您的问题来看,如果您发现最后两行并不是很清楚:help 'listchars'

The "NonText" highlighting will be used for "eol", "extends" and
"precedes".  "SpecialKey" for "nbsp", "tab" and "trail".

选项卡和尾随空格使用相同的突出显示组,因此您无法为这些突出显示组提供不同的背景颜色。但是你不需要不同的颜色,因为你已经将它们设置为由不同的角色代表。

答案 1 :(得分:6)

这是一种方式:

首先创建两个hi-groups:

:hi GroupA ctermbg=blue ctermfg=.. guibg=...
:hi GroupB ctermbg=gray ctermfg=.. guibg=..

然后

:match GroupA / \+$/
:2match GroupB /\t/

答案 2 :(得分:5)

你不能,至少不能以100%正确的简单方式。

正如@romainl所说,Vim只为表示字符的所有listchar类型提供一个突出显示组,即。 SpecialKey

@Kent的变通方法实现有几个缺点:

  • 它仅适用于第一个/当前窗口;你也需要:autocmd来为新窗口定义它。
  • 不考虑'list'是否实际设定;不可能直接进行改变。
  • 它破坏了:match个插槽;这可以通过matchadd()来防止,但它的使用更复杂。

因此,请仔细思考该功能是否真的值得。