如何开发一个与vim-plug兼容的Vim插件

hm2xizp9  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(152)

我写了一个简单的插件,其中包括各种文件,我存储在标准的地方:.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知道它必须查看这个目录?

x759pob2

x759pob21#

Vim有两个“运行时目录”:一个在系统级,在/usr/share/vim/(或其他位置,具体取决于您的系统),一个在用户级,在~/.vim/(或其他位置,具体取决于您的系统)。
这两个目录都有类似的结构:autoload/doc/ftplugin/plugin/,等等。我们所说的“插件”可以是plugin/下的一个文件,也可以是任意数量的标准目录下的任意数量的文件。见鬼,它甚至可以处理自己的目录结构。
Vim-plug和所有其他插件管理器的工作方式都是一样的:它们会在Vim的默认:help 'runtimepath'中添加更多的运行时目录,每个“插件”对应一个目录。因此,为了使您的插件能够与当前的插件管理解决方案一起工作,您所需要做的就是将组成您的插件的目录/文件捆绑在各自的运行时目录中。
以下过程使用本机:help packages特性。在进一步操作之前,您应该阅读该帮助部分。
让我们假设您的插件foo目前分散在您的~/.vim/目录:

~/.vim/autoload/foo.vim
~/.vim/doc/foo.txt
~/.vim/ftplugin/foo.vim
~/.vim/syntax/foo.vim

字符串
1.为“软件包”创建必要的基础结构:

~/.vim/pack/<arbitrary name>/start/


1.为插件创建一个目录:

~/.vim/pack/<arbitrary name>/start/foo/


1.复制所需结构:

~/.vim/pack/<arbitrary name>/start/foo/autoload/
~/.vim/pack/<arbitrary name>/start/foo/doc/
~/.vim/pack/<arbitrary name>/start/foo/ftplugin/
~/.vim/pack/<arbitrary name>/start/foo/syntax/


1.最后,移动文件:

~/.vim/pack/<arbitrary name>/start/foo/autoload/foo.vim
~/.vim/pack/<arbitrary name>/start/foo/doc/foo.txt
~/.vim/pack/<arbitrary name>/start/foo/ftplugin/foo.vim
~/.vim/pack/<arbitrary name>/start/foo/syntax/foo.vim


最终的结果是一个包含所有插件文件的目录foo/,这些文件可以放在版本控制之下并压缩以供分发。
请参见:help usr_51

  • 编辑-
    你的问题实际上是两个问题:“如何打包一个自定义的Vim插件?”和“如何加载一个自定义的Vim插件与vim插件?"。

如何打包自定义Vim插件?

您或您的潜在用户使用的插件管理解决方案在打包时是无关紧要的。您不会为vim-plug和$OTHER_PLUGIN_MANAGER分别以一种方式打包插件。所有插件管理器的工作方式都是相同的,预期的结构也总是相同的。在您的情况下,您的插件结构如下:

vim-sbatch/ftplugin/sbatch.vim
vim-sbatch/plugin/sbatch.vim
vim-sbatch/syntax/sbatch.vim

如何使用vim-plug加载自定义Vim插件?

如果您使用的是vim-plug(我没有使用),那么该目录实际上可以位于您计算机上的任何位置:

~/Documents/MyProjects/sbatch/vim-sbatch


并使用以下指令添加到vim-plug中:

Plug '~/Documents/MyProjects/sbatch/vim-sbatch'


按照vim-plug文档中的说明,或者将其置于版本控制之下并托管在GitHub上,这样您就可以像添加其他插件一样添加它:

Plug 'Pythonist/vim-sbatch'


同样,按照vim-plug文档中的说明。

相关问题