Вы пробовали:
% EDITOR=emacsclient git add -e <files>
и затем с помощью команд diff-mode в ваших запущенных emacs для интерактивного редактирования фрагментов патча?
Тогда вы сможете разделитьфрагменты в патче в любой конкретной строке с diff-split-hunk
и полное удаление фрагментов с помощью diff-hunk-kill
(и, конечно, эти команды привязаны к более коротким последовательностям клавиш для быстрого интерактивного использования).Когда вы закончите редактирование патча, используйте C-x #
, чтобы сохранить его и выйти из сеанса emacsclient (чтобы вы могли вернуться к своей оболочке).
(emacsclient, если вы не знакомы с ним,программа, которая позволит вам открывать файлы в уже работающем emacs, если последний запускает сервер для подключения к emacsclient; см. M-x describe-function server-start
)
Обратите внимание, что вы, вероятно, захотитенастроить, как emacsclient взаимодействует с git;например, посмотрите эти ответы: Использование ediff в качестве git mergetool и Как установить состояние выхода для emacsclient .