Você realmente quis dizer fechar os buffers, em vez de fechar as janelas , ou seja, geralmente voltar para uma única janela mostrando um único arquivo (mas deixando os arquivos abertos)?
Gilles 'SO- stop be evil'
Sim, refiro-me a matar buffers (Cx k)
denys
Por que você deseja fazer isso? Muitas vezes, quando faço um ediff, preciso continuar trabalhando em um dos buffers posteriormente.
Andrew Swann
No meu caso, estou usando o ztree-diff para visualizar os diffs e não estou interessado nos arquivos após o diff a maior parte do tempo.
Observe que isso sempre matará ediff-buffers, mesmo que eles não tenham sido abertos por ediff, por exemplo, você ligou ediff-bufferscom alguns buffers que tinha aberto para começar.
Se você quiser, você também pode matar *ediff-errors*, *ediff-diff*, *Ediff-Registry*e *ediff-fine-diff*bem, mas aqueles geralmente não me incomoda.
Estou adicionando uma resposta, porque este é o primeiro link que apareceu para mim neste tópico, e isso é realmente muito mais simples.
Você pode passar um prefixo para "q" e ele solicitará a eliminação dos buffers ediff.
Cu q
Se você personalizá- ediff-keep-variantslo, reverterá o comportamento: prompt para eliminar os buffers na saída e, se usar o prefixo, os deixará abertos.
Lembre-se de que os ganchos estão sendo executados antes que o ediff-cleanup-mess comece no ediff-control-buffer; eles também devem deixar ediff-control-buffer como o buffer atual quando terminarem. Ganchos que são executados após a bagunça da limpeza de ediff devem esperar que o buffer atual seja o buffer A ou o buffer B.
Então, eu mato também o buffer * Ediff Control Panel * . Outros buffers ediff também podem ser adicionados.
Respostas:
Observe que isso sempre matará ediff-buffers, mesmo que eles não tenham sido abertos por ediff, por exemplo, você ligou
ediff-buffers
com alguns buffers que tinha aberto para começar.Se você quiser, você também pode matar
*ediff-errors*
,*ediff-diff*
,*Ediff-Registry*
e*ediff-fine-diff*
bem, mas aqueles geralmente não me incomoda.fonte
Estou adicionando uma resposta, porque este é o primeiro link que apareceu para mim neste tópico, e isso é realmente muito mais simples.
Você pode passar um prefixo para "q" e ele solicitará a eliminação dos buffers ediff.
Se você personalizá-
ediff-keep-variants
lo, reverterá o comportamento: prompt para eliminar os buffers na saída e, se usar o prefixo, os deixará abertos.(peguei isso no manual ediff)
fonte
Estou usando este código (GNU Emacs 25.3.1 x86_64-pc-linux-gnu), seguindo https://emacs.stackexchange.com/a/17089/18662
Conforme declarado no Manual do GNU Emacs sobre o ediff-quit-hook ( https://www.gnu.org/software/emacs/manual/html_node/ediff/Hooks.html ):
Lembre-se de que os ganchos estão sendo executados antes que o ediff-cleanup-mess comece no ediff-control-buffer; eles também devem deixar ediff-control-buffer como o buffer atual quando terminarem. Ganchos que são executados após a bagunça da limpeza de ediff devem esperar que o buffer atual seja o buffer A ou o buffer B.
Então, eu mato também o buffer * Ediff Control Panel * . Outros buffers ediff também podem ser adicionados.
fonte
Você pode tentar este gancho:
fonte
lambda
funções a ganchos (e conselhos). Torna dolorosa revisar as variáveis de gancho e remover funções dos ganchos.Isto é o que eu estou usando para fechar as janelas:
fonte