2010-03-08 106 views

回答

54

是,只需要使用:so %命令而編輯的.vimrc。

如果你想Vim自動重新加載您的配置,您必須添加以下命令:

augroup myvimrchooks 
    au! 
    autocmd bufwritepost .vimrc source ~/.vimrc 
augroup END 

自動命令的分組是在這裏,以避免「指數」重裝,如果你多次保存您的配置。

+0

注意,這對'gvimrc'不起作用,或者如果你的文件被稱爲'_vimrc'或'vimrc',或者你編輯另一個名爲'.vimrc'的文件目錄。請參閱我的答案以解決這些問題。 – 2016-09-04 02:57:37

20

源vimrc文件:source ~/.vimrc

+1

在windows上,只是:so〜/ _vimrc – 2017-11-08 17:15:13

38

這裏有一個更多的跨平臺兼容的版本,如果你在Mac/Windows的/ Linux和gvimrc運行:

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

自動命令監視所有潛在*vimrc文件,當一個人改變,它重新加載vimrc文件之後如果GUI正在運行,則爲gvimrc

+0

我沒有得到你的命令。 $ MYGVIMRC在哪裏定義? – 2010-06-18 14:18:09

+5

當GUI Vim啓動時它被設置。請參閱::help gvimrc' – matpie 2010-06-21 16:54:30

+3

FANTASTIC,謝謝。如果你這樣做,避免我剛剛犯下的大腦放屁...我打開gvim,將其添加到我的vimrc,然後試圖確認它工作。沒有... 20分鐘後,我意識到自從忘記添加AUTOCMD之後,忘了文件的來源。一旦我這樣做了,當然,一切都奏效了。我想這對我來說太過分了,我有一個心理上的「堆棧溢出」。 – 2010-12-05 05:50:30

1

autocmd! BufWritePost裏_vimrc源%

這將自動重裝在_vimrc文件中的所有配置在您保存

3
" 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
  • 0將不會生成錯誤

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

+0

這似乎只在文件全部打開的'vim'的同一個實例中編輯'$ MYVIMRC'時才起作用。例如,如果他們在不同的終端中,那麼我仍然需要手動發送'$ MYVIMRC'。有沒有辦法解決這個問題? – 2017-02-04 02:31:50

+1

不是我所知道的 - 噹噹前的'vim'寫出文件時,這種方法是有效的。可能會監視文件本身的mtime,但不確定如何在不進行異步輪詢的情況下執行此操作。 – 2017-02-04 04:26:57

相關問題