Como configurar o Emacs para nunca dividir janelas?

7

Quero experimentar um novo fluxo de trabalho em que janelas divididas só ocorram se eu as solicitar, caso contrário, o Emacs simplesmente altera as janelas. Eu tentei colocar este comando no meu init.el:

(setq pop-up-windows nil)

E parece funcionar principalmente: se eu usar um comando de ajuda, iniciar uma compilação, usar M-x occuretc. O Emacs altera corretamente as janelas. No entanto, no *compilation*buffer, se eu pressionar RETuma linha, o Emacs divide o quadro em duas janelas. Alguém sabe que outra configuração eu preciso para garantir que o Emacs alterne corretamente?

gnuvince
fonte
Você precisaria redefinir várias funções dentro window.el, incluindo, entre outras display-buffer. Fazer isso, no entanto, colocará você em um mundo de problemas futuros, porque a maioria dos autores de bibliotecas realiza muitos planejamentos em termos de quais janelas exibir e quais dedicar, além de restaurar configurações anteriores da janela. Você está melhor, na minha opinião, apenas tocando o que especificamente precisa ser alterado com base em suas preferências pessoais. Em outras palavras, use um bisturi ou uma faca a laser em vez de um facão (ou Martelo de Guerra de Thor).
lawlist
Isso pode ser um conselho, e não uma resposta direta. Proibir a divisão da janela talvez não seja uma boa ideia - algumas vezes é bastante útil. Alternar e fechar rapidamente a janela pode tornar seu fluxo de trabalho fluente: tente [ace-window] [1] e [ace-jump-mode] [2] e se acostume com Cx 0; feche a janela atual Cx 1; feche outras janelas [1 ]: github.com/abo-abo/ace-window [2]: github.com/winterTTr/ace-jump-mode Isso não irá decepcioná-lo.
29414 Nick

Respostas:

3

Não está muito claro qual comportamento você está procurando.

Se você deseja que o Emacs substitua (1) o buffer atual na janela selecionada ou (2) mostre o novo buffer em um novo quadro em vez de uma nova janela no mesmo quadro, considere usar não nil pop-up-frames.

Nesse caso, você provavelmente desejará fazer algumas alterações adicionais, porque o desenvolvimento do Emacs é bastante tendencioso para janelas em vez de quadros (por exemplo, alguns desenvolvimentos não fornecem um bom suporte para o uso de quadros; alguns desenvolvimentos não são bem testados com o uso de quadros em vez de janelas )

As páginas do Emacs Wiki sobre o One-On-One Emacs fornecem informações e código para essa abordagem de favorecer o uso de quadros nas janelas do Emacs. Favorecer significa que você sempre pode dividir explicitamente um quadro quando quiser, mas o Emacs não faz isso, por padrão.

E a biblioteca oneonone.elpode ser útil para essa abordagem.

Saiba também que você pode criar qualquer janela dedicada , o que significa que o Emacs nunca mostrará um buffer diferente nela.

Desenhou
fonte