处理VIM中源文件(相对)的源文件的最优雅方式是什么?

处理VIM中源文件(相对)的源文件的最优雅方式是什么?,vim,Vim,我正在编辑一个类似 带有vim的/path/to/file.txt,因此当前目录为 /path/to 现在,我有一个目录 /other/path/to/vim/files 它包含sourceA.vim。另外,在 /other/path/to/vim/files/lib/sourceB.vim 在sourceA.vim中,我想要sourcesourceB.vim,所以我放了一个 so lib/sourceB.vim 我喜欢它 现在,在我的file.txt中,我做了一个 :so/other/path

我正在编辑一个类似
带有vim的
/path/to/file.txt

,因此当前目录为
/path/to

现在,我有一个目录
/other/path/to/vim/files

它包含
sourceA.vim
。另外,在
/other/path/to/vim/files/lib/sourceB.vim

sourceA.vim
中,我想要source
sourceB.vim
,所以我放了一个
so lib/sourceB.vim

我喜欢它

现在,在我的file.txt中,我做了一个
:so/other/path/to/vim/files/sourceA.vim

这会失败,因为寻源系统显然没有为相对路径名以及从另一个目录寻源做好准备

为了解决这个问题,我放置了一个
执行“so”。展开(“:p:h”)。“/lib/sourceB.vim”

进入
sourceA.vim
,它满足我的需要

然而,我发现这个解决方案有点笨拙,我想知道是否有更优雅的解决方案


我无法将sourceA.vim或sourceB.vim放入vim的
plugin
文件夹。

也许您可以在vimrc或其他地方修改运行时路径:

set runtimepath+=/other/path/to/vim/files
然后在sourceA.vim文件中使用:runtime而不是:source:

runtime lib/sourceB.vim

然后您可以像以前一样使用相同的“:so/../../../../sourceA.vim”命令…

对我来说非常有用!谢谢