再起動せずにVimで.vimrcをリロードする


93

何かを書いたときは気に.vimrcなります。変更を適用するには、まず閉じてから開かなければなりません。.vimrcVimを閉じずにリロードする方法はありますか?

たとえば、すべてのウィンドウとバッファに行番号を追加set nu~/.vimrcたいと思います。

回答:



18

これは後世のものです。次を.vimrcに追加します。

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

最初の行は、リーダーを入力して「vimrc」と書くことで、vimバッファーからvimrcを開くことができることを意味します。たとえば、リーダーはコンマに設定されているため、編集モードで「、vimrc」と入力すると、vimrcが新しいタブで開きます。

2行目では、vimrcを保存して閉じると、vimrcに変更が自動的に適用されます。魔法です。


1
理想的にmap <leader>vimrc :tabe $MYVIMRC<cr>は、autocmdと一致しませんか?
ニックビスビー14

@NickBisby私にとって~/.vimrcは、~/.vim/.vimrcすべてをソース管理下に置くことができるようにソースするスタブにすぎません。あなたが正しいほとんどの人にとっては、そうでしょう:tabe $MYVIMRC<cr>
ディーン14

1
または、スタブではなく、実際の.vimrcファイルへのシンボリックリンクを使用することもできます。
スポイケ

カーソルの位置を変更せずにvimrcをリロードするにはどうすればよいですか?
SergioAraujo


4
" 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.