我想修改我的.vimrc
以從外部文件讀取變數的值。我怎樣才能做到這一點?
具體來說,我和一個朋友與我們的.vim
文件共用一個 git 儲存庫,但我們想要的配置有一些細微的差異。因此文件的大部分內容都是通用的,但我們使用 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
自從提出這個問題以來,我提出了加載外部文件的另一個用例:特定於機器的調整。
由於我可能需要也可能不需要在給定的機器上進行調整,所以我使用 atry/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
或無論您的登入名稱是什麼