为什么 vim 在启动时调用这个脚本?

为什么 vim 在启动时调用这个脚本?

我正在尝试使用自定义配色方案。

在启动时,我可以看到 vim 正在加载我的方案,但之后它会加载其他方案,覆盖我的方案。

以下是 的输出:scriptnames

  1: /usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/vimrc
  2: ~/.vimrc
  3: ~/.vim/colors/torte2.vim
  4: /usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/runtime/syntax/syntax.vim
  5: /usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/runtime/syntax/synload.vim
  6: /usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/runtime/colors/torte.vim
  7: /usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/runtime/syntax/syncolor.vim
  ... and so on

如您所见,我的配色方案“torte2”在第 3 行加载,但在第 6 行被“torte”破坏。

为什么会这样?我怎样才能阻止它?

答案1

当您克隆颜色方案时,您需要调整g:colors_name脚本内部;其值必须与更改的名称相同。这是因为以下代码片段syntax/synload.vim将重新加载颜色方案:

" Set the default highlighting colors.  Use a color scheme if specified.
if exists("colors_name")
    exe "colors " . colors_name
else

您忘记调整名称,因此 Vim 正在重新加载torte.vim而不是您的torte2.vim


或者,你可以将克隆的脚本重命名为torte.vim;如果它早于'runtimepath',Vim 将优先使用该脚本,而不是 Vim 附带的脚本。

相关内容