该solarized主题定义一些基本的颜色和分配那些变量,看到这里。
我想知道如何在我的.vimrc
文件中使用这些颜色定义。目前,我使用病原体加载solarized,它加载了一个简单的syntax enabled
和colorscheme solarized
,但是当我想s:base00
在我的.vimrc
文件中引用时,我收到一个错误:
E421: Color name or number not recognized: ctermfg=s:base00
Run Code Online (Sandbox Code Playgroud)
有两个问题:
该: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
因为以前的封面guifg
vs.ctermfg
以便您的组可以自动处理GUI 和终端)。