日晒主题定义了一些基色并将其分配给变量,如图所示这里。
我想知道如何在我的.vimrc
文件中使用这些颜色定义。目前,我使用 Pathogen 来加载 Solarized,它加载了一个简单的syntax enabled
and colorscheme solarized
,但是当我想s:base00
在我的.vimrc
文件中引用 例如 时,我收到一个错误:
E421: Color name or number not recognized: ctermfg=s:base00
答案1
有两个问题:
该
: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 和终端)。