我写了一个简单的插件,其中包括各种文件,我存储在标准的地方:.vim/ftplugin
,.vim/plugin
,.vim/systax
等,它的增长,我想在一个单一的存储库中排序,并最终让它由vim-plug处理。
这可能是一个愚蠢的问题,但是我必须如何将我的文件组织在一个文件夹中,我必须使用哪一行才能让Vim plug处理我的插件并最终使其可安装?我在任何地方都找不到这方面的文档。
到目前为止,我已经创建了以下文件结构:
> tree ~/.vim/bundle/vim-sbatch
/home/sp4e/.vim/bundle/vim-sbatch
├── doc
├── ftplugin
│ └── sbatch.vim
├── plugin
│ └── sbatch.vim
└── syntax
└── sbatch.vim
字符串
但这本身并不起作用。在.vim/plugin/sbatch
中定义的命令不存在。这是有意义的,因为我一直在探索'rtp'
变量,实际上没有引用.vim/budle/vim-sbatch
。我如何让vim-plug知道它必须查看这个目录?
1条答案
按热度按时间x759pob21#
Vim有两个“运行时目录”:一个在系统级,在
/usr/share/vim/
(或其他位置,具体取决于您的系统),一个在用户级,在~/.vim/
(或其他位置,具体取决于您的系统)。这两个目录都有类似的结构:
autoload/
,doc/
,ftplugin/
,plugin/
,等等。我们所说的“插件”可以是plugin/
下的一个文件,也可以是任意数量的标准目录下的任意数量的文件。见鬼,它甚至可以处理自己的目录结构。Vim-plug和所有其他插件管理器的工作方式都是一样的:它们会在Vim的默认
:help 'runtimepath'
中添加更多的运行时目录,每个“插件”对应一个目录。因此,为了使您的插件能够与当前的插件管理解决方案一起工作,您所需要做的就是将组成您的插件的目录/文件捆绑在各自的运行时目录中。以下过程使用本机
:help packages
特性。在进一步操作之前,您应该阅读该帮助部分。让我们假设您的插件
foo
目前分散在您的~/.vim/
目录:字符串
1.为“软件包”创建必要的基础结构:
型
1.为插件创建一个目录:
型
1.复制所需结构:
型
1.最后,移动文件:
型
最终的结果是一个包含所有插件文件的目录
foo/
,这些文件可以放在版本控制之下并压缩以供分发。请参见
:help usr_51
。你的问题实际上是两个问题:“如何打包一个自定义的Vim插件?”和“如何加载一个自定义的Vim插件与vim插件?"。
如何打包自定义Vim插件?
您或您的潜在用户使用的插件管理解决方案在打包时是无关紧要的。您不会为vim-plug和$OTHER_PLUGIN_MANAGER分别以一种方式打包插件。所有插件管理器的工作方式都是相同的,预期的结构也总是相同的。在您的情况下,您的插件结构如下:
型
如何使用vim-plug加载自定义Vim插件?
如果您使用的是vim-plug(我没有使用),那么该目录实际上可以位于您计算机上的任何位置:
型
并使用以下指令添加到vim-plug中:
型
按照vim-plug文档中的说明,或者将其置于版本控制之下并托管在GitHub上,这样您就可以像添加其他插件一样添加它:
型
同样,按照vim-plug文档中的说明。