如何开发兼容vim-plug的vim插件

问题描述 投票:0回答:1

我正在编写一个简单的插件,其中包含我存储在标准位置的各种文件:

.vim/ftplugin
.vim/plugin
.vim/systax
等。它正在增长,我希望将所有这些都排序在单个存储库,并最终让它由 vim-plug 处理。

这可能是一个愚蠢的问题,但是我如何在单个文件夹中组织我的文件以及我必须使用哪一行来让 vim 插件处理我的插件并最终使其可安装?我在任何地方都找不到这个记录。

vim vim-plugin
1个回答
0
投票

Vim 有两个“运行时目录”:一个位于系统级别,位于

/usr/share/vim/
(或其他位置,取决于您的系统),一个位于用户级别,位于
~/.vim/
(或其他位置,取决于您的系统)系统)。

两个目录具有相同的结构:

autoload/
doc/
ftplugin/
plugin/
等。我们所说的“插件”可以是
plugin/
下的单个文件,也可以是任意数量的任意数量的文件这些标准目录。天啊,它甚至可以处理自己的目录结构。

Vim-plug 和所有其他插件管理器的工作方式相同:它们向

:help 'runtimepath'
添加更多运行时目录,每个“插件”一个。因此,为了使您的插件能够与每个当前的插件管理解决方案一起使用,您所需要做的就是捆绑将构成插件的目录/文件放在它们自己的运行时目录中。

假设您的插件当前分散在您的

~/.vim/
目录中:

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

如果您已经使用 vim-plug 或其他插件管理器......

  1. 在插件管理器使用的目录下为您的插件创建一个目录(

    ~/.vim/bundle
    默认为 vim-plug,YMMV):

    ~/.vim/bundle/foo/
    
  2. 复制所需的结构:

    ~/.vim/bundle/foo/autoload/
    ~/.vim/bundle/foo/doc/
    ~/.vim/bundle/foo/ftplugin/
    ~/.vim/bundle/foo/syntax/
    
  3. 最后,移动您的文件:

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

如果您不使用插件管理器......

  1. :help packages
    创建必要的基础设施:

    ~/.vim/pack/<arbitrary name>/start/
    
  2. 为您的插件创建一个目录:

    ~/.vim/pack/<arbitrary name>/start/foo/
    
  3. 复制所需的结构:

    ~/.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/
    
  4. 最后,移动您的文件:

    ~/.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/
包含所有插件的文件,可以置于版本控制之下并压缩以进行分发。

© www.soinside.com 2019 - 2024. All rights reserved.