Actuellement, je travaille avec ruby et rspec. J'aime vraiment l'idée d'avoir un cadre séparé dans un autre moniteur me montrant le tampon de compilation. Ma configuration actuelle utilise un cadre «code» (dans lequel je travaille réellement) et un cadre «résultat de test» (dans lequel je vois les résultats de rspec)
Le problème est que lorsque j'essaie d'ouvrir une erreur de compilation ou un fichier dans le cadre «test-result», la fenêtre se divise dans ce cadre. Ce que j'aimerais vraiment faire, c'est qu'il s'ouvre dans mon cadre «code».
J'utilise déjà l'option display-buffer-reuse-frames
. J'ai également essayé de définir la fenêtre des résultats de la compilation dedicated
, mais chaque fois qu'emacs essaie d'ouvrir une nouvelle fenêtre, un nouveau cadre est créé (ce qui est particulièrement horrible si vous utilisez Helm).
Existe-t-il un moyen simple d'y parvenir?
popwin.el
de MELPA pour compiler les popups et aider les tampons qui persistent jusqu'à ceC-g
qu'on appuie dessus . Si j'en ai besoin à plein temps, je passe simplement à eux dans une autre fenêtre. Je n'ai pas pensé à épingler des fenêtres parce qu'emacs le faitsplit-windows-sensibly
.Réponses:
Vous devez configurer le gorille de 600 livres
display-buffer-alist
qui détermine commentdisplay-buffer
choisir où afficher un tampon. Cela renddisplay-buffer-reuse-frames
obsolète dans les nouveaux emacsen. Voici une configuration qui devrait vous guider (au moins dans emacs 24.3).Comme vous pouvez le voir, j'utilise une expression rationnelle pour correspondre au tampon de compilation-journal. La documentation de
display-buffer
devrait vous donner une idée de ce qui se passe. Attention, ce n'est pas la documentation la plus agréable à lire. Je les ai ajoutés séquentiellement afin que l'expression rationnelle du journal de compilation soit mise en correspondance avant l'expression rationnelle générique. Adaptez l'expression rationnelle à vos besoins.EDIT Pour rendre n'importe quel cadre insécable, vous pouvez évaluer
M-: (set-frame-parameter nil 'unsplittable t)
ce cadre particulier. Remplacez nil par requisFRAME
si vous le faites depuis elisp. Entre ces deux paramètres, il doit rendre le cadre de compilation exclusif à moins que vous ne trouviez spécifiquement un fichier dans ce cadre.la source