是否可以根据背景颜色是浅还是暗来在vim中进行条件突出显示?

时间:2014-05-15 22:12:14

标签: linux vim

请考虑以下语法规则,该规则会将终端中以>>开头的任何行更改为Yellow

syntax match completed /^>>.*/ 
highlight completed ctermfg=Yellow

颜色Yellow在深色(黑色)背景上显示效果很好,但在浅色(白色)背景上显示效果不佳。

当背景为浅色时,是否可以自动切换为其他颜色?

我查看了:help highlight,但我没有找到任何直接的方法来执行此操作。

2 个答案:

答案 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')