请考虑以下语法规则,该规则会将终端中以>>
开头的任何行更改为Yellow
。
syntax match completed /^>>.*/
highlight completed ctermfg=Yellow
颜色Yellow
在深色(黑色)背景上显示效果很好,但在浅色(白色)背景上显示效果不佳。
当背景为浅色时,是否可以自动切换为其他颜色?
我查看了:help highlight
,但我没有找到任何直接的方法来执行此操作。
答案 0 :(得分:1)
如果您将代码直接放入.vimrc
,肯特的答案无效,因为在处理.vimrc
时,background
尚未设置。您可以在通过以下方式设置语法规则后执行命令:
au Syntax * call SetSyntax()
function SetSyntax()
if &background == "dark"
" dark theme
else
" light theme
endif
set cursorline
endfunction
答案 1 :(得分:0)
如果您已经设置了background
选项,则可以尝试以下方法:
exec "hi! completed ctermfg=".(&background=='dark'?'yellow':'black')