如何设置最后执行的VimScript?

时间:2017-05-31 16:20:34

标签: vim configuration config configuration-files macvim

问题

我的vimrcset noshowmode)中的设置在加载过程中稍后被插件覆盖。

目标

最后(或至少在插件之后)执行VimScript文件。

我所知道的

  • 插件VimScripts在vimrcSource)之后执行。
  • after-directory接近最后运行并保留用户覆盖 (来源::h after-directory)。
  • Vim runtimepath确定运行顺序。

尝试失败

  1. 我尝试将一个VimScript文件(包含set noshowmode)附加到 $VIMRUNTIME的结尾 set runtimepath=$VIMRUNTIME,~/.vim/nosmd.vim,但这种方法结束了 弄乱其他插件(即vim-airline,但没有加载)。

  2. 我也尝试创建~/.vim/after目录并放入我的目录 VimScript在那里,但这没有效果。

1 个答案:

答案 0 :(得分:1)

您的尝试

set runtimepath=$VIMRUNTIME,~/.vim/nosmd.vim

那不行。 'runtimepath'包含根配置目录列表;你不能直接在那里放置脚本文件。而是指向包含plugin/yours.vim的目录。

  

我也尝试创建~/.vim/after目录并将我的VimScript放在那里,但这没有效果。

您可以查看:scriptnames以查看您的脚本是否已执行(以及插件加载序列的末尾!)

解决方案

一盎司预防胜过任何解决方法。我会首先尝试找到更改'showmode'选项的罪魁祸首;插件不应该这样做(或者至少有一个可配置选项来禁用它)。

:verbose set showmode?

可能已经告诉你是谁改变了这个设置。

正如@romainl已经评论过的那样,~/.vim/after/plugin/myplugin.vim应该可以解决这个问题。如果它没有尝试以下autocmd(在~/.vimrc中)作为最后的手段:

autocmd VimEnter * set noshowmode