Atualmente trabalho com ruby e rspec. Eu realmente gosto da idéia de ter um quadro separado em outro monitor, mostrando o buffer de compilação. Minha configuração atual usa um quadro de 'código' (no qual trabalho efetivamente) e um quadro de 'resultado do teste' (no qual vejo os resultados do rspec)
O problema é que, quando tento abrir algum arquivo ou erro de compilação no quadro 'resultado do teste', a janela se divide nesse quadro. O que eu realmente gostaria de fazer é abrir no meu quadro de 'código'.
Eu já uso a opção display-buffer-reuse-frames
. Também tentei definir a janela de resultados da compilação dedicated
, mas sempre que o emacs tenta abrir uma nova janela, um novo quadro é criado (o que é particularmente horrível se você usar o Helm.)
Existe alguma maneira fácil de conseguir isso?
popwin.el
do MELPA para pop-up compilar e ajudar buffers que persistem até queC-g
seja pressionado. Se eu precisar deles em tempo integral, basta mudar para eles em outra janela. Eu não pensei em fixar janelas porque o emacs fazsplit-windows-sensibly
.Respostas:
Você precisa configurar o gorila de 100 kg
display-buffer-alist
que determina comodisplay-buffer
escolhe onde exibir um buffer. Tornadisplay-buffer-reuse-frames
obsoleto no emacsen mais recente. Aqui está uma configuração que deve guiá-lo (pelo menos no emacs 24.3).Como você pode ver, eu uso um regexp para corresponder ao buffer de compilação do log. A documentação de
display-buffer
deve fornecer uma idéia do que está acontecendo. Apenas um aviso de que não é a parte da documentação mais agradável que você jamais lerá. Eu os adicionei sequencialmente para que o regexp do compile-log seja comparado com o regexp genérico. Adapte o regexp às suas necessidades.EDIT Para tornar qualquer quadro inviável, você pode avaliar
M-: (set-frame-parameter nil 'unsplittable t)
nesse quadro específico. Substitua zero por necessárioFRAME
se estiver fazendo isso da elisp. Entre essas duas configurações, ele deve tornar o quadro de compilação exclusivo, a menos que você encontre especificamente um arquivo nesse quadro.fonte