Как мне заставить Emacs вернуть все неизмененные буферы при переключении веток в git? - PullRequest
53 голосов
/ 20 марта 2009

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

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

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

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

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

Edit:

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

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

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

Edit2:

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

Ответы [ 3 ]

41 голосов
/ 20 марта 2009

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

18 голосов
/ 20 марта 2009

Попробуйте пакет revbufs :

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

11 голосов
/ 20 марта 2009

Пакет Magit делает это автоматически, когда вы активируете magit-ionotify-mode (требуется inotify emacs 24.4 на linux). Его описание вы можете найти здесь .

...