我想修改我的代码.vimrc
以从外部文件读取变量的值。我该怎么做?
具体来说,我和一位朋友共享一个 git repo,其中包含我们的.vim
文件,但我们在配置中想要的内容有一些小差异。因此,文件的大部分内容都是通用的,但我们使用 if 语句来确定是否加载用户特定的部分,如下所示:
let whoami = "user2"
if whoami == "user1"
...
在检查了我们共同的.vimrc
源代码控制之外的内容后,我们每个人都必须更改分配,let whoami
以便加载我们自己的部分。相反,我想保留一个单独的文件,该文件对于我们每个人来说都可以是不同的,并且 vim 将从中加载该变量值。
也许另一个角度是:.vim
vim 会自动读取我的目录中的所有文件吗?如果是这样,我们每个人都可以放置一个名为 username.vim 的符号链接,并将其链接到每个人不同的外部文件。
答案1
在你的主 .vimrc 文件中:
source otherVimScriptFilePath.vim
然后只需将变量语句放入该文件中:
" otherVimScriptFilePath.vim
let whoami = "user1"
答案2
使用 try/catch
自从问了这个问题以来,我想到了另一个加载外部文件的用例:特定于机器的调整。
因为我可能需要或不需要在给定的机器上进行调整,所以我使用它try/catch
来加载外部文件;如果没有这样的文件,我会让它静默失败。
" If there are any machine-specific tweaks for Vim, load them from the following file.
try
source ~/.vimrc_machine_specific
catch
" No such file? No problem; just ignore it.
endtry
答案3
回答最后一个问题,中的文件~/.vim
不会自动加载,但中的所有文件~/.vim/plugin
都会自动加载。
答案4
登录用户的名称在 $USER 环境变量中可用。您可以轻松访问该变量:
:echo $USER
所以,只需使用
execute "silent! source vimrc." . $USER
在你的 vimrc 中并将你的用户特定设置放入
vimrc.joe
或者你的登录名