我正在尝试将我的vimrc文件分成多个文件 - init.vim、keybindings.vim、ui.vim等 - 但我无法将 Vim 获取到相对于的源文件init.vim(而是相对于我启动 Vim 的位置的源文件。
这是我在顶部得到的init.vim:
source keybindings.vim
source ui.vim
Run Code Online (Sandbox Code Playgroud)
如果我vim从与这些文件相同的目录运行,它就可以正常工作;如果我从任何其他目录运行它,我会收到以下错误:
Error detected while processing /path/to/vimrc:
line 1:
E484: Can't open file keybindings.vim
line 2:
E484: Can't open file ui.vim
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
编辑:值得注意的是,我使用的是 NixOS,所以我不知道绝对路径是什么,也不知道如果我发现它们是否会保持不变。
Source 需要完整路径,但是您可以使用以下内容简化它:
let path = expand('%:p:h')
exec 'source' path . '/keybindings.vim'
Run Code Online (Sandbox Code Playgroud)
您可以在这里查看我的 - https://github.com/dhruvasagar/dotfiles/blob/master/vim/vimrc以供参考。
如果顺序不重要,您可以将脚本放入 中~/.vim/plugin/,它们将在 后获取~/.vimrc。您可以检查:scriptnames输出以了解何时获取什么内容。
您可以通过插件文件名在一定程度上影响排序。例如,我有一个~/.vim/plugin/00plugin-configuration.vim配置 Vim 插件的;确保00...这是首先获得的。
为了获得更好的控制,我会将脚本放入~/.vim/. Vim 会在那里忽略它们,但可以通过 轻松解决它们:runtime,它会在所有运行时路径中查找,并且~/.vim/通常包含在'runtimepath':
# .vimrc
runtime init.vim
runtime keybindings.vim
...
Run Code Online (Sandbox Code Playgroud)
相关帮助页面::help .vimrc和:help load-plugins。