題 在Vim中重新加載.vimrc而不重啟


當我寫東西時,它困擾著我 .vimrc 我必須首先關閉它並打開以應用我的更改。 有沒有重裝的方法 .vimrc 在Vim沒有關閉它?

例如。我已經添加 set nu 至 ~/.vimrc 我希望所有窗口和緩衝區都顯示行號。


83
2018-05-22 08:34


起源




答案:


:source ~/.vimrc

從vim內部運行,將應用你的 .vimrc

交替

:source $MYVIMRC


114
2018-05-22 08:39





這是後人的一個。將以下內容添加到.vimrc:

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

第一行意味著您可以通過鍵入您的領導者,然後編寫“vimrc”,從任何vim緩衝區打開您的vimrc。例如,我的領導者設置為逗號,所以如果我處於編輯模式並輸入“,vimrc”,它會在新選項卡中打開我的vimrc。

保存並關閉時,第二行會自動將更改發送到vimrc。這是魔法。


18
2018-01-28 03:56



理想情況下你不會 map <leader>vimrc :tabe $MYVIMRC<cr> 匹配autocmd? - Nick Bisby
@NickBisby對我來說 ~/.vimrc 只是一個來源的存根 ~/.vim/.vimrc 這樣我就可以將所有東西都置於源頭控制之下對於大多數人來說,你是對的 :tabe $MYVIMRC<cr>。 - Dean
或者,您可以使用指向實際.vimrc文件的符號鏈接,而不是將其作為存根。 - Spoike
如何在不改變光標位置的情況下重新加載vimrc? - SergioAraujo


:so %

如果當前正在編輯.vimrc


12
2017-08-29 04:54





" 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
  • 處理配置文件的各種名稱
  • 確保它只匹配實際的配置文件(忽略其他目錄中的副本,或者a fugitive:// DIFF)
  • 使用時不會產生錯誤 vim-tiny

當然,只有編輯你的自動重新加載才會發生 vimrc 在vim。


4
2017-09-02 14:20