.vimrc を外部ファイルから読み取るにはどうすればよいですか?

.vimrc を外部ファイルから読み取るにはどうすればよいですか?

.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の使用

この質問をしてから、外部ファイルを読み込む別の使用例、つまりマシン固有の調整を思いつきました。

特定のマシンで調整が必要になる場合とそうでない場合があるので、を使用して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

またはログイン名

関連情報