1

我正在使用这个插件,它只附带 'after' 目录,包含 'plugin' 和 'syntax' 目录。

在这里,看起来“after”目录也添加到了运行时路径。

如果我手动将“插件”和“语法”目录移动到插件工作的 bundles/indentLine 根目录,则可以识别命令。

关于出了什么问题的任何建议?我该如何调试?如何在其中添加打印语句?

编辑:我将进一步澄清这一点。

我有一个目录布局 ~/.vim/bundles。我所有来自 gitrepos 的插件都在这里,所以你正在寻找类似的东西 -

输出:

~/.vim/bundle
|-- nerdtree
|   |-- syntax
|   `-- plugin
|-- indentLine
|   `-- after
|       `-- syntax
|       `-- plugin
`-- vim-surround
    |-- syntax
    `-- plugin

scriptnames 包括 nerdtree 和 vim-surround。但是, indentLine 不会出现在脚本名称中。如果我将“syntax”和“plugin”目录从“indentLine\after”移动到“indentLine”目录,那么 indentLine:scriptnames也会出现。

基本上,:indentLines\after不会在目录中查找插件。

4

1 回答 1

0

我想我在 Vim 文档中找到了答案。运行时:help runtime会出现一个目录列表,用于搜索 vim 脚本。该after目录不是其中之一。完整列表可在此处找到。

因此,当 Pathogen 将您的bundle目录添加到 runtimepath 时,它实际上并没有添加after目录。

所以,我们能做些什么?好吧,您可以手动将您的后脚本添加到运行时路径。因此,您可以创建一个.vim/bundle/indentLine/plugin/setup.vim包含以下内容的脚本:

set runtimepath.="," . expand("<sfile>:h:p") . "/../after/"

这样,您的after目录将添加到运行时路径的末尾并实际处理

于 2019-04-06T00:43:08.130 回答