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


2

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

在启动时,我可以看到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

如您所见,我的colorcheme“ torte2”在第3行中加载,但随后在第6行中被“ torte”破坏了。

为什么这样做,我如何才能停止呢?


1
您可以分享自己的色彩设计和vimrc吗?这是这一个?如果是这样,您应该更改let g:colors_name = "torte"let g:colors_name = "torte2"
romainl 2014年

不,我的torte2只是我对常规torte所做的一些修改的副本。
Grant Birchmeier 2014年

它仍然被称为“ torte”还是您将其更改为“ torte2”?另外,您的vimrc在哪里?
romainl 2014年

Answers:


2

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

" 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附带的版本。


啊,是的,那正是我所做的。我没有注意到g:colors_name我复制的方案内部,所以它仍然说“ torte”。一旦将其更改为“ torte2”,问题就解决了。谢谢!
格兰特·伯奇迈尔2014年
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.