Comment forcer l'ouverture d'un tampon spécifique dans une nouvelle fenêtre?

12

Lors de la validation des modifications dans Magit, il est utile d'avoir la vue diff ouverte tout en ajoutant des détails sur la validation.

Dans Magit, nous voyons le diff dans le *magit ..*tampon. Lorsque vous frappez cclorsque le curseur est sur un Staged fichier, le Magit commit tampon .. COMMIT_EDITMSGapparaît. Par défaut, ce nouveau tampon remplace le *magit ..*tampon qui affichait les différences de validation.

QUESTION - Comment puis-je ouvrir le .. COMMIT_EDITMSGtampon dans une nouvelle fenêtre (réutiliser une fenêtre différente ou créer une nouvelle fenêtre si le cadre n'avait qu'une seule fenêtre pour commencer) afin que je puisse voir les tampons *magit ..*et .. COMMIT_EDITMSG?

Kaushal Modi
la source

Réponses:

17

Il est possible de configurer la façon dont un tampon s'ouvre (dans le même cadre / fenêtre ou un autre cadre / fenêtre) à l'aide display-buffer-alist. Reportez-vous aux références ci-dessous pour en savoir plus sur cette variable.

Solution

Nous devons dire à emacs de toujours ouvrir les tampons se terminant par COMMIT_EDITMSGdans une fenêtre mais pas dans la même *magit ..*fenêtre ( ).

Ajoutez l'extrait suivant à l' init.elafter (require 'magit)pour spécifier cette action.

(add-to-list 'display-buffer-alist
                 '(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
                                        ((inhibit-same-window . t)))))

Répartition de la solution

display-buffer-alistest un alistqui appelle un FUNCTION(ou une liste de fonctions) avec des ALISTparamètres lorsque a CONDITIONest vrai. Le display-buffer-alistpeut être représenté par,

'(CONDITION . (FUNCTION . ALIST))
  • Voici CONDITIONque le nom du tampon se termine par COMMIT_EDITMSGet qui est représenté par ".*COMMIT_EDITMSG".
  • L' FUNCTIONappeler est display-buffer-pop-up-windowcomme nous voulons créer une fenêtre pour ce tampon. Au lieu de spécifier la fonction par elle-même, elle est placée sous forme de liste d'une seule fonction (display-buffer-pop-up-window)afin que plus de fonctions puissent être facilement ajoutées à la liste si nécessaire à l'avenir.
  • Le ALISTcontient (inhibit-same-window . t)car nous ne voulons pas que ce tampon s'ouvre dans la même fenêtre.

Les références

Kaushal Modi
la source
2

Le démarrage de v2.1.0Magit par défaut affiche les modifications qui sont validées avec le tampon utilisé pour écrire le message de validation.

tarse
la source