vimを再起動せずに.vimrcファイルをリロードするにはどうすればよいですか?


534

.vimrcVimを再起動せずにファイルを編集してリロードできますか?

回答:


661

編集している場合は、次の方法でリロードできます。

:so %

%は現在のファイル名(を参照:h current-file)の:so略で:source、の短縮形で、指定されたファイルの内容を読み取り、Vimコードとして扱います。

一般に、現在アクティブな.vimrcを再ロードするには、次を使用します(Daily Vimを参照)。

:so $MYVIMRC


36
および:so ~/.vimrcUNIX上であまりにも動作するはずです
YAB

3
:so〜/ _vimrcはWindowsで動作します。もちろん、_vimrcをWindowsのホームディレクトリに置いておくと、これが機能しなくなります。Vimがホームディレクトリと見なすものを確認するには、を使用します:echo expand("~")
ダニエルミラディノフ

3
キーボードマッピングが既に配置されている場合、新しいvimrcから削除されても消去されないことに注意してください
Phani 14年

または:so ~/.vim/gvimrc、もちろんどこに置いても
NeilG

79

さらに良いのは、Vimがあなたの変更を監視するように設定し.vimrc、設定を自動的にリロードすることです。

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

出典:SOに関するこの回答

注:この特定の方法は、Vim configファイル名の多くのバリエーションを監視するため、GUI Vim、Windows Vimなどと互換性があります。


2
この方法のパフォーマンスはどのくらいですか?
アレクセイマグラ

この種のコマンドを使用すると、nvimが数秒以上ハングすることがあります。
-jdhao

11

キーマッピング

" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

完全に自動化されたソリューション

保存時に自動的にリロードするには、次をに追加します$MYVIMRC

if has ('autocmd') " Remain compatible with earlier versions
 augroup vimrc     " Source vim configuration upon save
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

そして最後に、次のように入力します:

:so %

次にを保存するとvimrc、自動的に再読み込みされます。

特徴:

  • 何が起こったのかをユーザーに伝えます(ログインもします:messages
  • 構成ファイルのさまざまな名前を処理します
  • 実際の構成ファイルにのみ一致することを保証します(他のディレクトリのコピー、またはfugitive://差分を無視します)
  • 使用する場合、エラーを生成しません vim-tiny

もちろん、vimrcvimで編集した場合にのみ自動再読み込みが行われます。


5

記憶/入力の代わりに:so $MYVIMRCこれらのマッピングがあります。これにより、vimrc(ev)またはソースvimrc(sv)をすばやく編集できます。

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.