如何创建自己的配色方案?


16

我需要创建什么文件?这些文件中应该包含什么?我可以在某个地方使用默认的colorscheme文件并相应地更改颜色值吗?

Answers:


15

颜色方案位置

首先,Vim在其运行时文件夹中查找colors目录。这是所有颜色配方应​​存储的位置(:help 'runtimepath'

这意味着您将需要一个保存在该~/.vim/colors文件夹中的文件。默认的colorchemes位于$VIMRUNTIME/colors$VIMRUNTIME通常在/usr/share/vim/vim74/usr/local/share/vim/vim74目录中,具体取决于Vim的安装方式(用vim73替换vim74,对于Vim 7.3版)。

现在进入有趣的部分。

创建颜色方案

要开始创建自己的颜色方案,我强烈建议您看一下默认颜色方案并尝试对其进行修改。

因此,将默认的colorcheme从$VIMRUNTIME/colors文件夹复制到您的~/.vim/colors文件夹。为它命名,使其与默认的colorcheme名称区分开。因此,如果您desert默认情况下复制了Vim附带的colorscheme,请将该文件命名为default_mod.vim或以此命名。打开colorscheme文件并更改,let g:colors_name使其也可以与默认colorscheme文件区分开。按照惯例,此名称应与colorscheme文件名相同。

在色彩方案,所有你需要做的就是给颜色ctermbgctermfgguibgguifg(对终端的背景下,终端前景,贵的背景下,GUI前景颜色分别)为内置高亮组的不同。要签出您可以修改的突出显示组列表,请签出:help highlight-default。(可选)您还可以使用ctermgui属性来指定您要突出显示组为粗体还是斜体。

例如,这将为字符串设置绿色:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

您也可以使用突出显示链接将突出显示组链接到另一个组。如果希望两个突出显示组具有相同的颜色,这将很有用。

例如,您可以将diffAdded突出显示组链接到上面定义的“字符串”突出显示组:

highlight link diffAdded String


如果我只复制一个colorscheme.vim文件,然后将其放在单独的文件夹中,我可以在其他机器上重用它吗?例如,如果我将其放在github上的存储库中,是否可以克隆它或在其中一个插件管理器中启用它?
dkns

@dkns,是的,完全是。例如,您可以将您的colorscheme命名为“ dkns_colorscheme.vim”,将其放置在colors /目录中,然后将其推送到Github。如果安装了插件管理器,则克隆此存储库将使Vim可以使用colorscheme。
akshay

另一个问题。不知道我应该在此处发表评论还是提出其他一般性问题。如何找到cterm的颜色值?我想让这个主题在gui和terminal上看起来相同,但是我不知道如何将十六进制值转换为cterm值。
dkns 2015年

1
@dkns由于终端颜色很大程度上取决于终端仿真器中使用的调色板,因此很难做到这一点。创建颜色方案时,发现显示256种颜色中的每种颜色很有用。我在bin文件夹中使用了这个小脚本。您可以只使用颜色选择器,然后选择颜色以确保gui和cterm颜色相同。我会从cterm-> gui而不是相反的方向开始,因为gui vim中有更多颜色。希望能有所帮助。
akshay 2015年


0

有一些工具可以使此过程自动化:

  • vivify:非常复杂,您必须为每个高光组手动选择每种颜色。
  • vimcolors.org:非常简单容易。只需选择一些颜色,它将自动为您生成方案。

0

另一个很棒的工具是romainl的RNB,它使用ERB。ERB(Embedded RuBy)是Ruby的一项功能,使您能够从模板生成一些文本。

因此,该工具的用法非常简单:首先,您需要定义与颜色方案的名称相对应的不同变量,当然还要根据其实际内容(颜色的外观,要使用的组等)定义不同的变量。非常直截了当,因为作者写了很多评论来帮助您。然后,您要做的就是将自定义模板提供给erb,该工具将生成正确的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.