Vimを終了せずにvimrcをリロードするにはどうすればよいですか?


50

で変更を行うと、.vimrc通常はVimを終了して再度開きます。新しい.vimrc変更を簡単にリロードする方法はありますか?

回答:


47

実行:

:source $MYVIMRC

Vim内でvimrcファイルをリロードします。または、短いバージョン:

:so $MYVIMRC

kenorbのコメントで述べたように。

また、これらのフォームのいずれかをキーにマップすると便利な場合があります。例えば:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
ショートカット::so $MYVIMRC
ケノーブ

@kenorb:この可能性を追加しました。言及してくれてありがとう!
ポールゲスラー

:so $m<タブ>←余分なショートカット
アーロントーマ

3
でさらに2つのキーストロークを保存します:so %%編集するバッファの現在のファイル名に設定されます。この場合$MYVIMRC
-cbaumhardt

1
これを行う最も断然簡単な方法は、保存時にvimrcを自動的にリロードすることです。他の答えを確認してください。
トム・ヘイル

20

時々ファイルをリロードしたいだけなら

:source $MYVIMRC

ポールが書いたとおりです。vimrcを頻繁に変更することになった場合、次のようなものをvimrcファイルに追加できます。

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

これにより、書き込み時にファイルがリロードされます(vimセッション内から)


1
johannes:このコマンドを使用してファイルを自動的に取得するには、vimから.vimrcを編集する必要がありますか?
サイマノジクマールヤドラパティ

5
vimrcファイルは他のものと呼ばれることもあることに注意してください:たとえば、vimrc(〜/ .vimにある場合)。
user50136

1
@SaiManojKumarYadlapatiはい、ASはこれは同じvomセッションでなければならないと述べました。bufwritepostはvomが書き込みを行うとトリガーされます
-johannes

これに関する問題:(1)は動作せず.vim/vimrc、(2)重複したautocmds を作成するため、ファイルが複数回リロードされるため、以降の各保存は遅くなります、(3)動作しないvim-tinyでは動作しませんautocmdがあり、一部のLinuxディストリビューションでは依然としてデフォルトです。これらの問題に対処するための私の答えをご覧ください。
トム・ヘイル

2
" 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で編集した場合にのみ自動再読み込みが行われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.