2014-03-04 85 views
2

我已經使用vim兩年了,我使用「病原體」進行插件管理。我正在尋求 的一種方法來重置所有vim的設置(包括插件,.vimrc文件),而無需關閉vim。 有什麼想法嗎? PS:在某些情況下,重新加載vimrc並沒有像重新打開vim一樣工作,所以我想要 像reopen vim一樣重新加載整個狀態。如何在不關閉vim的情況下重置vim的設置(包括插件,.vimrc文件)?

+2

你爲什麼要重新加載Vim的狀態而不是實際重新打開vim?爲什麼不重新打開vim?將會通過':mksession'創建一個會話並通過'vim -S session.vim'限制vim?重新加載插件真的有必要嗎? –

回答

4

:h set

:se[t] all&    Set all options, except terminal options, to their 
          default value. The values of 'term', 'lines' and 
          'columns' are not changed. {not in Vi} 
+0

重置所有選項後,您可能需要':source $ MYVIMRC'和':runtime!插件/ **/*。vim'。基本上,執行':help startup'中描述的步驟。 – benjifisher

+1

@benjifisher我懷疑大多數插件將真正被重新加載。加入警衛以防止這種事情是司空見慣的。你可以使用[scriptease](https://github.com/tpope/vim-scriptease)的':Runtime'命令來「解除」守衛,然後執行':runtime!'。然而,我的擔憂並不止於此,因爲還有很多事情需要拆除,然後再建立起來。 'autocmd',映射,函數和命令。 –

0

爲什麼你會避免重新啓動的Vim目前尚不清楚。

如果問題是失去當前狀態的標籤頁,窗口和緩衝區,最好創建一個會話來保存重要事項並重新載入其他所有內容。

建立在Peter Rincker關於評論的建議中,有一個great plugin called session.vim,這使得管理會話非常容易。它還創建Restart command

這個命令保存當前編輯會話,重新啓動Vim後 恢復您的編輯會話。當你調試Vim腳本時,這個功能可以派上用場,這些腳本不能很容易地/安全地被使用。reloaded using a more lightweight approach

:Restart命令在這裏工作得很好,所以我從來沒有測試過其他插件的「輕量級方法」。但是如果完全重新啓動Vim不是一個選項,你可以嘗試它。

+1

我很理解爲什麼作者避免重新啓動Vim,它可能是因爲作者想要添加一個新的vim插件或別的東西,這讓我很長時間都一樣 – alexzzp