Вы действительно имели в виду закрыть буферы, а не закрывать окна , то есть обычно возвращаться к одному окну, отображающему один файл (но оставляя файлы открытыми)?
Жиль "ТАК - перестань быть злым"
Да, я имею в виду буферы уничтожения (Cx k)
отрицает
Почему вы хотите это сделать? Часто, когда я делаю ediff, мне нужно продолжить работу над одним из буферов впоследствии.
Эндрю Суонн
В моем случае я использую ztree-diff для просмотра различий и большую часть времени меня не интересуют файлы после различий.
Обратите внимание, что это всегда убивает ediff-буферы, даже если они не были открыты с помощью ediff, например, вы вызывали ediff-buffersс некоторыми буферами, с которых у вас были открыты для начала.
Если вы хотите , чтобы вы могли также убить *ediff-errors*, *ediff-diff*, *Ediff-Registry*и *ediff-fine-diff*как хорошо, но те , как правило , не беспокоят меня.
Я добавляю ответ, потому что это первая ссылка, которая появилась у меня на эту тему, и это действительно намного проще.
Вы можете передать префикс «q», и он предложит уничтожить буферы ediff.
Cu q
Если вы настроите ediff-keep-variantsего, он обратит поведение: предложит уничтожить буферы при выходе и, если использовать префикс, оставит их открытыми.
Имейте в виду, что перехваты выполняются до запуска ediff-cleanup-mess в ediff-control-buffer; они также должны оставить ediff-control-buffer в качестве текущего буфера, когда они закончат. Хуки, которые выполняются после ediff-cleanup-mess, должны ожидать, что текущий буфер будет либо буфером A, либо буфером B.
Итак, я убил также буфер * Ediff Control Panel * . Также могут быть добавлены другие буферы ediff.
Ответы:
Обратите внимание, что это всегда убивает ediff-буферы, даже если они не были открыты с помощью ediff, например, вы вызывали
ediff-buffers
с некоторыми буферами, с которых у вас были открыты для начала.Если вы хотите , чтобы вы могли также убить
*ediff-errors*
,*ediff-diff*
,*Ediff-Registry*
и*ediff-fine-diff*
как хорошо, но те , как правило , не беспокоят меня.источник
Я добавляю ответ, потому что это первая ссылка, которая появилась у меня на эту тему, и это действительно намного проще.
Вы можете передать префикс «q», и он предложит уничтожить буферы ediff.
Если вы настроите
ediff-keep-variants
его, он обратит поведение: предложит уничтожить буферы при выходе и, если использовать префикс, оставит их открытыми.(получил это из руководства ediff)
источник
Я использую этот код (GNU Emacs 25.3.1 x86_64-pc-linux-gnu), следуя https://emacs.stackexchange.com/a/17089/18662
Как указано в Руководстве по GNU Emacs относительно ediff-quit-hook ( https://www.gnu.org/software/emacs/manual/html_node/ediff/Hooks.html ):
Имейте в виду, что перехваты выполняются до запуска ediff-cleanup-mess в ediff-control-buffer; они также должны оставить ediff-control-buffer в качестве текущего буфера, когда они закончат. Хуки, которые выполняются после ediff-cleanup-mess, должны ожидать, что текущий буфер будет либо буфером A, либо буфером B.
Итак, я убил также буфер * Ediff Control Panel * . Также могут быть добавлены другие буферы ediff.
источник
Вы можете попробовать этот крючок:
источник
lambda
функции к хукам (и советам). Это делает просмотр переменных хуков и удаление функций из хуков болезненным.Это то, что я использую, чтобы закрыть окна:
источник