Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim插件如何管理我的vim插件?_Vim_Vim Plugin - Fatal编程技术网

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

vim插件如何管理我的vim插件?,vim,vim-plugin,Vim,Vim Plugin,当我检查我的.vim目录时,我发现与vim plug一起安装的所有插件都位于.vim/plucked目录中。在这种情况下,vim是如何加载这些插件的?如果我有一个正常安装的相同插件,那么哪个插件将具有更高的加载权限?加载插件只不过是寻找脚本文件的来源。脚本文件可以在任何地方 通常,插件有一个标志(例如:variable)来检测脚本是否已经加载。所以它不会被加载两次。但是,如果您的插件没有这种机制,它可能会被加载两次。该函数设置插件的“主”路径(vim plug也是一个插件) 该函数遍历定义的插件

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

加载插件只不过是寻找脚本文件的来源。脚本文件可以在任何地方

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

该函数设置插件的“主”路径(
vim plug
也是一个插件)

该函数遍历定义的插件列表(通过
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)

您可以计算从
vim plug
的代码加载插件的顺序。

注意:Stackoverflow还有一个“vi和vim”的beta站点。过来看!优先级由
'rtp'
选项决定。查看此变量以了解加载顺序(请参见BTW
:h'rtp'
)。然后,你的下一个问题可能是“它是如何填充的?”。好。这多亏了“rtp”,你的插件管理器在不同的文件夹中注册插件。插件管理器的全部目的不是为了保护你不受这些概念的影响吗?@romainl,…好奇的是让你接触它们。
  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)
  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