Как я могу заставить 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 ответа:
попробовать пакет revbufs:
revbufs.el
Это крошечный пакет Emacs, который безопасно возвращает ваши буферы, когда у вас есть файлы, редактируемые как в Emacs, так и с помощью внешних инструментов (например, генераторы кода, такие как Jomtool)...
возможно, вы хотели бы глобальный режим авто-возврата. Попробуйте запустить
global-auto-revert-mode
и если вам это нравится, вы можете добавить(global-auto-revert-mode)
в ~/.файл emacs.
пакет Magit делает это автоматически, когда вы активируете
magit-ionotify-mode
(inotify нужен emacs 24.4 на linux). Его описание вы можете найти здесь.