vim-plug如何管理我的vim插件?

时间:2016-10-20 09:34:06

标签: vim vim-plugin

当我检查我的.vim目录时,我发现安装了vim-plug的所有插件都位于.vim/plugged目录中。在这种情况下,vim如何加载这些插件?如果我通常安装了相同的插件,那么哪一个具有更高的适当性?

2 个答案:

答案 0 :(得分:1)

plug#begin(...)功能设置" home"插件的路径(vim-plug也是一个插件),

  if a:0 > 0
    let s:plug_home_org = a:1
    let home = s:path(fnamemodify(expand(a:1), ':p'))
  ...

并且函数plug#end()遍历定义的插件列表(通过plug#()),并将它们保存在字典中:

  for name in g:plugs_order
  ...
         if has_key(plug, 'on')
      let s:triggers[name] = { 'map': [], 'cmd': [] }
      for cmd in s:to_a(plug.on)
        if cmd =~? '^<Plug>.\+'
          if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i'))
            call s:assoc(lod.map, cmd, name)

然后通过调用(最终)s:lod()来最终操纵每个插件的runtimepathsource

  for [cmd, names] in items(lod.cmd)
    execute printf(
    \ 'command! -nargs=* -range -bang %s call s:lod_cmd(%s, "<bang>", <line1>, <line2>, <q-args>, %s)',
    \ cmd, string(cmd), string(names))
  endfor

您可以从vim-plug代码中找出加载插件的顺序。

答案 1 :(得分:0)

加载插件只不过是获取脚本文件。脚本文件可以在任何地方。

通常插件有一个标志(例如g:variable)来检测脚本是否已经加载。所以它不会被加载两次。但是,如果您的插件没有此机制,则可以加载两次。