web-dev-qa-db-ja.com

どのようにvimを再起動せずに.vimrcファイルをリロードしますか?

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

522
ivo

編集している場合は、次のコマンドで再読み込みできます。

:so %

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

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

:so $MYVIMRC
643
Matteo Riva

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

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

出典: この回答はSO

注意:この特定の方法はGUI VimやWindows Vimなどと互換性があるようにVimの設定ファイル名の多様なバリエーションを監視します。

77
Andrei

キーマッピング

" 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:// diffは無視します)。
  • vim-tinyを使用してもエラーにならない

もちろん、自動リロードはあなたがvimrcをvimで編集した場合にのみ起こります。

9
Tom Hale

:so $MYVIMRCを覚えて/タイプする代わりにこれらのマッピングがあります。それはあなたがvimrc(ev)またはソースvimrc(sv)を素早く編集することを可能にします。

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
5
maged