我正在编辑一个像
/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文件夹中.
也许您可以在vimrc或其他地方修改您的runtimepath:
set runtimepath+=/other/path/to/vim/files
Run Code Online (Sandbox Code Playgroud)
然后在sourceA.vim文件中使用:runtime而不是:source:
runtime lib/sourceB.vim
Run Code Online (Sandbox Code Playgroud)
然后你可以像以前一样使用相同的":so /../../../sourceA.vim"命令......