首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vim插件如何管理我的vim插件?

vim插件如何管理我的vim插件?
EN

Stack Overflow用户
提问于 2016-10-20 09:34:06
回答 2查看 94关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-20 09:55:39

plug#begin(...)函数为插件设置了"home“路径(vim-plug也是一个插件),

代码语言:javascript
复制
  if a:0 > 0
    let s:plug_home_org = a:1
    let home = s:path(fnamemodify(expand(a:1), ':p'))
  ...

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

代码语言:javascript
复制
  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)

最后,通过调用(最终) runtimepathsources:lod()来操作每个插件

代码语言:javascript
复制
  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
EN

Stack Overflow用户

发布于 2016-10-20 09:47:25

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

插件通常有一个标志(g:变量,例如)。若要检测脚本是否已加载,请执行以下操作。所以不会装两次。但是,如果您的插件没有此机制,则可以加载两次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40150660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档