vimrc 文件中的日晒颜色定义

Kit*_*aro 7 colors vim vimrc

该solarized主题定义一些基本的颜色和分配那些变量,看到这里

我想知道如何在我的.vimrc文件中使用这些颜色定义。目前,我使用病原体加载solarized,它加载了一个简单的syntax enabledcolorscheme solarized,但是当我想s:base00在我的.vimrc文件中引用时,我收到一个错误:

E421: Color name or number not recognized: ctermfg=s:base00
Run Code Online (Sandbox Code Playgroud)

Chr*_*sen 7

有两个问题:

  • :highlight命令不会将ctermfg值计算为表达式。它只接受文字颜色编号或颜色名称(请参阅 参考资料:help cterm-colors)。你得到 E421 因为s:base00它不是一个数字,也不是一个有效的颜色名称。

    您可以execute 'highlight GroupName ctermfg=' . s:base00用来构建命令字符串并执行它(这基本上就是colors/solarized.vim这样做的);但是还有一个额外的问题。

  • 以 开头的变量s:是脚本局部变量(请参阅:help s:var),因此它们在您的.vimrc(或除了定义它们的脚本之外的任何地方:)中都无法访问colors/solarized.vim

    定义脚本将颜色值作为它定义的高亮组的一部分“导出”,但似乎没有导出它用于每个 Solarized 颜色的单个 cterm/gui 值。如果您想创建自己的使用这些值的高亮组,那么您可能需要将其编辑到您的副本中colors/solarized.vim(尽管您可能想使用s:fg_base00/s:bg_base00而不是s:base00因为以前的封面guifgvs.ctermfg以便您的组可以自动处理GUI 和终端)。