2013-06-11 4 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-хrevert-buffer, но я предлагаю вам использовать magit-mode управлять Git репо в Emacs.

Для записи, я использую, чтобы привязать к revert-bufferF5:

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

Спасибо большое! Ключ-привязка отлично подходит для сейчас, но позже выглядит как «magit-mode» - более постоянное решение. – Houdini

+5

@ Хоудини, чтобы избежать раздражающего подтверждения каждый раз, когда вы нажимаете * F5 *. Используйте '(глобальный-set-key [f5] (lambda() (interactive) (revert-buffer nil t)))' –

6

Чтобы добавить ответ Джордано, если много файлов, которые находятся под мерзавца, открыты. Затем откройте ibuffer (M-хibuffer) проставляют буфера вы хотите перезагрузить с помощью м, а затем E с последующим (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. Если вы хотите включить его, добавьте следующий код в конфигурационный файл.

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

Если вы открываете слишком много буферов, и ваша машина горячая, тогда вы должны установить 'auto-revert-interval 'намного больше. – ngn999

Смежные вопросы