无法使用相对路径从子目录加载.vim文件

无法使用相对路径从子目录加载.vim文件,vim,Vim,我正试图在我自己的“dotfiles”项目中为自己构建一个集中的VIM配置,这样我就可以轻松地在我的多台计算机(即家庭和工作)之间同步我的VIM配置更改 我的想法是,我可以在任何目录中维护这个dotfiles项目的git repo,在本例中是~/git/dotfiles/vim。然后,该目录将包含多个基于其提供的配置类型分组的.vim文件。因此,我将有一个home.vim文件,该文件仅来源于此目录中的其他.vim文件: source plugins.vim source keymappings.

我正试图在我自己的“dotfiles”项目中为自己构建一个集中的VIM配置,这样我就可以轻松地在我的多台计算机(即家庭和工作)之间同步我的VIM配置更改

我的想法是,我可以在任何目录中维护这个dotfiles项目的git repo,在本例中是
~/git/dotfiles/vim
。然后,该目录将包含多个基于其提供的配置类型分组的
.vim
文件。因此,我将有一个
home.vim
文件,该文件仅来源于此目录中的其他
.vim
文件:

source plugins.vim
source keymappings.vim
...
现在的想法是,我的
~/.vimrc
文件将不包含任何内容,除了源文件这个dotfiles项目和任何不打算同步的配置。就我而言,它只是:

source ~/git/dotfiles/vim/home.vim
不幸的是,这种类型的配置似乎不允许
home.vim
加载其目录中的任何文件。当我尝试使用此配置集运行
vim
命令时,出现以下错误:

$ vim .vimrc
Error detected while processing /Users/evanbrodie/git/dotfiles/vim/home.vim:
line    1:
E484: Can't open file plugins.vim
line    2:
E484: Can't open file keymapping.vim
我的猜测是,我需要配置一些东西来告诉Vim在当前工作目录中搜索该文件,而不需要依赖于绝对路径。我可以根据将绝对路径替换为
.vim
dotfiles将解决此问题的事实得出此结论。但这是不可取的,我希望改用相对路径。

运行时
命令 当Vim对文件进行
source
d处理时,路径与当前工作目录相对

如果不想指定相对路径,可以使用
运行时
命令。根据"命令",

runtimepath
和/或
packpath

默认情况下,Unix中的
运行时路径设置为
$HOME/.vim、$vim/vimfiles、$VIMRUNTIME、$vim/vimfiles/after、$HOME/.vim/after
。这意味着,如果
.vim
文件位于这些目录中的任何一个,您只需运行以下命令,而无需在路径中指定目录组件,例如

runtimepath plugins.vim
文件路径还可以包括一个目录组件,例如,我有一个用于编写电子邮件的文件类型插件(
~/.vim/ftplugin/mail.vim
),它提供一个包含预定义缩写的文件(位于
~/.vim/shared/缩写.vim
),因此它们也可以被其他文件类型使用)。这是通过my
ftplugin/mail.vim
中的以下行实现的:

runtime shared/abbreviations.vim
运行时
命令 当Vim对文件进行
source
d处理时,路径与当前工作目录相对

如果不想指定相对路径,可以使用
运行时
命令。根据"命令",

runtimepath
和/或
packpath

默认情况下,Unix中的
运行时路径设置为
$HOME/.vim、$vim/vimfiles、$VIMRUNTIME、$vim/vimfiles/after、$HOME/.vim/after
。这意味着,如果
.vim
文件位于这些目录中的任何一个,您只需运行以下命令,而无需在路径中指定目录组件,例如

runtimepath plugins.vim
文件路径还可以包括一个目录组件,例如,我有一个用于编写电子邮件的文件类型插件(
~/.vim/ftplugin/mail.vim
),它提供一个包含预定义缩写的文件(位于
~/.vim/shared/缩写.vim
),因此它们也可以被其他文件类型使用)。这是通过my
ftplugin/mail.vim
中的以下行实现的:

runtime shared/abbreviations.vim

如果你在寻源时使用绝对路径,它将工作。如果你在寻源时使用绝对路径,它将工作。