2009-03-20 1 views
52

Часто, когда я переключаю ветви в git, если файлы открыты в emacs, emacs спрашивает, хочу ли я их вернуть (поскольку он думает, что они изменились на диске), хотя содержимое идентично.Как я могу заставить Emacs вернуть все неизменные буферы при переключении ветвей в git?

Во-первых, я хотел бы найти способ, чтобы emacs не спрашивал меня об этом вообще, если содержимое на диске идентично содержимому в буфере.

Во-вторых, мне нужна команда, которая вернула (без запроса) все мои открытые буферы, у которых нет несохраненных изменений, и спросил меня о тех, у которых есть несохраненные изменения.

В качестве альтернативы, я был бы открыт для предложений о других решениях, способах работы и т. Д. Я мог бы попробовать. Я довольно счастлив писать emacs-lisp, если люди могут дать мне указания о том, с чего начать.

PS Я использую Aquamacs на OSX, если это имеет значение.

Edit:

Ну, я нашел пакет revbuffs быть довольно много, что мне нужно. Конечно, достаточно, чтобы остановить меня, желая попробовать написать что-нибудь новое. (Я сопоставил revbuffs с Cmd-R, который работает очень хорошо. Вид похож на Cmd-R в других приложениях Mac).

Режим Global-auto-revert был бы идеальным решением, и я хотел бы выбрать два ответа. Я предпочитаю обрезки просто из-за, возможно, иррационального чувства желания контролировать то, что происходит.

Я бы догадался, что если бы я получил доступ к git из emacs, тогда, возможно, это было бы легче, но в настоящее время я предпочитаю доступ к git через командную строку. (Я не достаточно давно использовал emacs, чтобы сделать его своей операционной системой). Однако я исследую магит немного более тщательно.

Edit2:

Я использую Magit уже в течение года и может очень рекомендую его для работы с мерзавцем внутри Emacs. Однако я все еще использую revbuffs, когда я делаю rebase вне emacs.

+1

Я знаю, что это древняя, но я люблю рассуждения Singletoned, и иметь небольшую вилку revbufs на GitHub https://github.com/capitaomorte/revbufs –

ответ

17

Попробуйте revbufs package:

revbufs.el крошечной Emacs пакет, который благополучно возвращается ваши буфера, когда вы файлы редактируются как в Emacs, так и через внешние инструменты (например, генераторы кода, такие как Jomtool) ...

+0

Любой способ сделать это автоматический? Как упоминает Singletoned в своем редактировании, вы должны привязать это к ключу. – toolbear

11

Magit package сделать это автоматически, когда вы активируете magit-ionotify-mode (inotify need emacs 24.4 on linux). В его описании вы найдете here.

40

Возможно, вам нужен глобальный режим автоматического возврата. Попробуйте запустить global-auto-revert-mode, и если вам нравится, вы можете добавить (global-auto-revert-mode) в файл ~/.emacs.

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