在VIM中使用以下代码的概念如何使选项卡为浅灰色背景,空格为蓝色背景
" part of ~/.vimrc
" highlight tabs and trailing spaces
set listchars=tab:>-,trail:-
set list
Run Code Online (Sandbox Code Playgroud)
rom*_*inl 25
如果你使用这些选项,你~/.vimrc肯定已经阅读了:help 'list',:help 'listchars'但是从你的问题来看,你是否发现最后两行并不是很清楚:help 'listchars':
The "NonText" highlighting will be used for "eol", "extends" and
"precedes". "SpecialKey" for "nbsp", "tab" and "trail".
Run Code Online (Sandbox Code Playgroud)
但是,选项卡和尾随空格使用相同的突出显示组,因此您无法为这些突出显示组提供不同的背景颜色.但是你不需要不同的颜色,因为你已经将它们设置为由不同的字符表示.
这是一种方式:
首先创建两个hi-groups:
:hi GroupA ctermbg=blue ctermfg=.. guibg=...
:hi GroupB ctermbg=gray ctermfg=.. guibg=..
Run Code Online (Sandbox Code Playgroud)
然后
:match GroupA / \+$/
:2match GroupB /\t/
Run Code Online (Sandbox Code Playgroud)
你不能,至少不是一个100%正确的简单方法.
正如@romainl所说,Vim只为表示字符的所有listchar类型提供了一个高亮组,即.SpecialKey.
@Kent的变通方法实现有几个缺点:
:autocmd为新窗口定义它.'list'实际设置; 挂钩它的变化是不可能的.:match插槽; 这可以通过防止matchadd(),但它的使用更复杂.因此,请仔细思考该功能是否真的值得.