[1] 我使用 vimrc 中的 'packpath' 选项创建了一个新的包目录:
:set packpath+=$HOME/vimlocal/pack
[2] 我运行命令 :set packpath? ,目录列在输出中:
packpath=
~/vimfiles,
C:\Program Files (x86)\Vim/vimfiles,
C:\Program Files (x86)\Vim\vim81,
C:\Program Files (x86)\Vim/vimfiles/after,
~/vimfiles/after,
~/vimlocal/pack
但目录中的所有插件(colorschemes)都不起作用。目录结构如下:
~/vimlocal/pack/colors/start/color1
~/vimlocal/pack/colors/start/color2
~/vimlocal/pack/colors/start/color3
[3] 我运行以下命令:
:set rtp?
但该目录未在输出中列出。
runtimepath=
~/vimlocal,
~/vimfiles,
~\vimfiles\bundle\alduin-master,
~\vimfiles\bundle\color-plugins,
~\vimfiles\bundle\ctrlp.vim,
~\vimfiles\bundle\dbext.vim,
~\vimfiles\bundle\goyo.vim,
~\vimfiles\bundle\hexHighlight.vim-master,
~\vimfiles\bundle\limelight.vim,
~\vimfiles\bundle\manpageview,
~\vimfiles\bundle\markdown-preview.nvim-master,
~\vimfiles\bundle\supertab,
~\vimfiles\bundle\tabular,
~\vimfiles\bundle\ultisnips,
~\vimfiles\bundle\utl.vim,
~\vimfiles\bundle\vim-colorschemes,
~\vimfiles\bundle\vim-HiLinkTrace,
~\vimfiles\bundle\vim-markdown-master,
~\vimfiles\bundle\vim-zenroom2,
~\vimfiles\bundle\vimoutliner,
~\vimfiles\bundle\vimtweak-master,
C:\Program Files (x86)\Vim/vimfiles,
C:\Program Files (x86)\Vim\vim81,
C:\Program Files (x86)\Vim\vim81\pack\dist\opt\matchit,
C:\Program Files (x86)\Vim/vimfiles/after,
~\vimfiles\bundle\vim-markdown-master\after,
~\vimfiles\bundle\ultisnips\after,
~\vimfiles\bundle\tabular\after,
~/vimfiles/after
注意:路径 '~\vimfiles\bundle....' 由 Pathogen 设置。我正尝试将所有插件从那里迁移到新的 packpath 目录。
[4] 当我将 colorscheme 文件移动到
'C:\Program Files (x86)\Vim\vim81\pack'
(具有相同的目录结构)它们工作正常(并出现在runtimepath命令的输出中)。
我的问题是为什么它们不能在我使用 packpath 选项在 vimrc 中设置的目录中工作?
答案1
您不应该pack
在您的'packpath'
设置中包含该组件,因为 Vim 会为您添加它。
你想要的只是:
:set packpath+=$HOME/vimlocal
或者更好的是,只使用现有的~/vimfiles
并将插件存储在等等下。如果这样做,您根本~/vimfiles/pack/colors/start/color1
不需要触摸。'packpath'
您可以查看包,其中写道:
当 Vim 启动时,在处理完你的 后
.vimrc
,它会扫描所有目录中'packpath'
的插件pack/*/start
目录。首先将所有这些目录添加到'runtimepath'
。然后加载所有插件。
重点是我。您可以看到这pack
是 Vim 添加的路径组件,因此您不应该将其放在 中列出的路径中'packpath'
。事实上,正如您所观察到的,Vim 包含的那些已经完全不包含pack
,然而,pack
正如您自己已经注意到的那样,这些目录正下方的目录将适用于包。