我正在编辑一个像
的文件
/path/to/file.txt
使用vim,因此当前目录为
/path/to
。
现在,我有一个目录
/other/path/to/vim/files
包含sourceA.vim
。此外,还有一个sourceB.vim
文件
/other/path/to/vim/files/lib/sourceB.vim
在sourceA.vim
,我想要sourceB.vim
来源,所以我放了一个
so lib/sourceB.vim
进入它。
现在,在我的file.txt中,我做了一个
:so /other/path/to/vim/files/sourceA.vim
这是失败的,因为采购系统显然没有为相对路径名准备以及从另一个目录中采购。
为了解决这个问题,我放了一个
execute "so " . expand("<sfile>:p:h") . "/lib/sourceB.vim"
进入sourceA.vim
,做我想做的事。
然而,我发现解决方案有点笨拙,并且想知道是否有更优雅的解决方案。
我无法将sourceA.vim和sourceB.vim放入vim的plugin
文件夹中。
答案 0 :(得分:5)
也许你可以在你的vimrc或其他地方修改你的运行路径:
set runtimepath+=/other/path/to/vim/files
然后在sourceA.vim文件中使用:runtime而不是:source:
runtime lib/sourceB.vim
然后您可以像以前一样使用相同的“:so /../../../sourceA.vim”命令...