Em geral, eu não gosto de quadros. Agora eu estou usando
(setq ediff-window-setup-function #'ediff-setup-windows-plain)
Para garantir que ediff
não crie um quadro ao iniciar.
No entanto, certos comandos, como ediff-show-registry
ainda abrem novos quadros.
Existe alguma maneira de desativar completamente a criação de quadros ediff
?
ediff-skip-unsuitable-frames
ou comentar isso completamente dentroediff-show-registry
- por exemplo, comentar(ediff-skip-unsuitable-frames 'ok-unsplittable)
:?ediff
família de bibliotecas(make-frame
e encontrará alguns lugares que precisam ser corrigidos para se adequar às suas preferências. Sua solicitação é certamente razoável e mereceria (na minha opinião) uma solicitação de recurso ao autor e / ou equipe do Emacs - a maioria das pessoas assumirá queediff-setup-windows-plain
deve se aplicar em todos os aspectos, sem as váriasmake-frame
exceções.Respostas:
Há um predicado interno em
ediff-init.el
, chamadoediff-window-display-p
. Quando eu o redefinii (depois de carregar o ediff, é claro) assim, tudo funciona em um único quadro, incluindo a função que você mencionou como um problema:Concordo com o @lawlist que este é um bom pedido de recurso - para corrigir
ediff-window-setup-function
.fonte
(advice-add 'ediff-window-display-p :override #'ignore)
, o que pode ser revertido com mais facilidadeadvice-remove
(além disso, não é necessário carregar o ediff primeiro).ediff-setup-windows-plain
assume todo o quadro - quero manter minhas janelas de "contexto" abertas (por exemplo, notas e outros arquivos). Então, eu escrevi uma função de configuração de janela personalizada (usa um buffer de exibição personalizado desenvolvido por ace-window para escolher onde dividir as janelas e exibir novos buffers). Parece que, quando o Ediff inicializa, ele verifica issoediff-window-display-p
e, se falso, ignora a função de configuração da janela personalizada e o usaediff-setup-windows-plain
. Portanto, para minha configuração personalizada, evitareiediff-show-registry
ou escreverei um comando personalizado.