2013-06-11 47 views
12

在我的Emacs 23編輯器的底部,我注意到Emacs知道我在一個目錄下工作,該目錄在版本控制下,該版本控制系統是什麼,以及我目前在哪個分支上。很酷!但是說我在主分支上,從命令行我做了git commit,然後是git checkout <branch>。 Emacs仍然顯示我在主分支上。我如何刷新Emacs,以便它反映我當前所在的分支,而不關閉所有緩衝區並重新啓動它?我怎麼能告訴Emacs我的git分支已經改變了?

+0

如果您只是重新加載文件會發生什麼? – gcbenison

+0

是否有Emacs命令來重新加載文件? – Houdini

+1

'revert-buffer' like giordano建議 –

回答

14

M-xrevert-buffer但我建議您使用magit-mode來管理您在Emacs中的git倉庫。

爲了記錄在案,我使用綁定revert-bufferF5

(global-set-key [f5] 'revert-buffer) 
+0

非常感謝!鍵綁定對於現在來說是完美的,但後來看起來像'magit-mode'是更持久的解決方案。 – Houdini

+5

@Houdini每次點擊* F5 *時都會避免令人討厭的確認。使用'(global-set-key [f5](lambda()(interactive)(revert-buffer nil t)))' –

6

要添加到佐丹奴的答案,如果許多文件,這些文件在混帳,被打開。然後打開ibufferM-Xibuffer)標記的緩衝區,你想用然後Ë隨後(revert-buffer nil t)重裝。

+1

不需要eval - 'V'運行'ibuffer-do-revert'。當然在ibuffer中有很多標記緩衝區的方法,所以如果你不熟悉它,使用'C-h m'來檢查它的特性。 – phils

+3

另外,如果你正在混合使用ibuffer和版本控制,你可能還想看看[ibuffer-vc](https://github.com/purcell/ibuffer-vc)。 – phils

+0

非常感謝phils。我終於開始嘗試將我的版本控制系統和編輯器結合起來使用,而不是跳回命令行進行'git'命令。 – Houdini

9

您可以通過啓用全局自動恢復模式自動恢復緩衝區。 如果您想啓用它,請將以下代碼添加到您的配置文件中。

(global-auto-revert-mode 1) 
(setq auto-revert-check-vc-info t) 
+1

如果你打開太多的緩衝區,並且你的機器很熱,那麼你應該設置'auto-revert-interval'大得多。 – ngn999

相關問題