2

我对 Vim 加载插件文件的顺序感到困惑,并且似乎在网上找到了混合的答案。 一些答案似乎表明 vimrc 是在插件之前加载的,而一些答案则表明它们是在vimrc 的采购过程filetype plugin indent on中加载的。有人可以澄清一下加载后/目录中的vimrc,插件和插件的顺序,导致每个加载的原因,以及在vim会话期间何时可以重新加载每个(例如,再次采购vimrc时会发生什么,当设置文件类型等)?

4

3 回答 3

8

一些答案似乎表明 vimrc 是在插件之前加载的,而另一些答案则表明它们是在 vimrc 的采购过程中加载的,在 filetype plugin indent on 行。

除非您手动获取所有插件(正确术语),否则所有插件均在您之后获取。vimrcfiletype plugin indent on行不会更改该顺序的任何内容。

有人可以澄清一下vimrc、插件和after/目录下的插件的加载顺序吗,

假设你有filetype plugin indent on你的vimrc

  1. vimrc如果有系统。
  2. 你的vimrc.
  3. 内置插件。
  4. 你的插件。
  5. 内置特定于文件类型的插件。
  6. 目录里的东西after/

整个事情都在中进行了解释,:help startup并且可以非常清楚地看到:scriptnames

是什么导致每个加载,

一般的值&runtimepath:filetype文件类型特定的东西的命令。

以及何时可以在 vim 会话期间重新加载每个(例如,再次采购 vimrc 时会发生什么,设置文件类型时会发生什么等)?

  • :source $MYVIMRC重新执行vimrc.
  • 大多数插件的编写方式都可以防止它们被两次获取。如果您想重置它们,请阅读他们的文档/代码。
  • :help :filetype.
于 2017-03-16T09:00:22.913 回答
4

.vimrc在加载插件之前执行:

在启动时,Vim 检查环境变量和文件并相应地设置值。Vim 按以下顺序进行:

(...)

  1. 从环境变量和/或文件中执行 Ex 命令 环境变量作为一个 Ex 命令行读取,其中多个命令必须用“|”分隔 或者 ””。vimrc exrc 包含初始化命令的文件称为“vimrc”文件。vimrc 文件中的每一行都作为 Ex 命令行执行。

(...)

  1. 加载插件脚本。
于 2017-03-16T02:23:30.307 回答
0

只需使用:scriptnames即可查看所有源文件及其在启动期间加载的顺序。

于 2017-03-16T03:48:14.327 回答