【问题标题】:Are plugins loaded by vimrc or afterwards?插件是由 vimrc 加载还是之后加载?
【发布时间】:2017-03-16 00:39:43
【问题描述】:

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

【问题讨论】:

  • 如有疑问,您可以随时在此处添加:echomsg "I'm here!" 和在此处添加:echomsg "I'm there!"

标签: vim vim-plugin ftplugin


【解决方案1】:

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

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

谁能说明一下vimrc,插件,after/目录下的插件的加载顺序,

假设您的vimrc 中有filetype plugin indent on

  1. 系统vimrc如果有的话。
  2. 你的vimrc
  3. 内置插件。
  4. 您的插件。
  5. 内置文件类型特定插件。
  6. after/ 目录中的内容。

整个事情在:help startup里都有解释,用:scriptnames可以看得很清楚。

是什么导致每个加载,

&runtimepath 的一般值和文件类型特定内容的:filetype 命令。

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

  • :source $MYVIMRC 重新执行您的 vimrc 中的每个命令。
  • 大多数插件的编写方式都可以防止它们被两次获取。如果您想重置它们,请阅读他们的文档/代码。
  • :help :filetype

【讨论】:

  • 帮助将filetype plugin onfiletype indent on 描述为加载文件。加载它们和采购它们有什么区别?
  • 您刚刚发现文档中存在差异。可悲的是,这不是唯一一个。
【解决方案2】:

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

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

(...)

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

(...)

  1. 加载插件脚本。

【讨论】:

  • 你能解释一下那个文件类型行的作用是什么吗?我在问题中链接的答案说它加载了 ftplugin 和缩进文件。那是错的吗?请详细说明这个答案,以便在我接受之前更全面地回答问题。
  • 在这种情况下,您的问题很广泛。为什么不阅读:help filetype 以了解有关该命令的更多信息。
  • 我确实阅读了帮助,以及有关该主题的其他堆栈溢出答案和博客文章。我问是因为在那之后我仍然感到困惑:/如果我的问题似乎过于广泛,也许我可以澄清我的困惑在哪里?
【解决方案3】:

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

【讨论】:

  • 这不会告诉插件是由 .vimrc 加载的(IOW,而 .vimrc 正在被获取),还是之后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
相关资源
最近更新 更多