Как я могу заставить Emacs вернуть все неизмененные буферы при переключении ветвей в git?


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

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

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

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

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

Edit:

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

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

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

Edit2:

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

3 53

3 ответа:

попробовать пакет revbufs:

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

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

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