Réponses:
A partir de là v2.1.0
, Magit utilise la bibliothèque magit-popup.el
pour implémenter de tels "buffers popup" ou "combos prefix-infix-suffix". Malgré son nom, cette bibliothèque peut être utilisée par des packages non liés à Magit, et est donc disponible en tant que package Elpa séparé. Il a même son propre manuel maintenant!
Les arguments par défaut peuvent désormais être définis directement à partir d'un tampon contextuel. Pour toujours utiliser --verbose
lors de la validation, procédez comme suit:
--verbose
magit-commit-arguments
)Par défaut, tous les tampons contextuels se terminent par une section nommée "Commandes communes". Sinon, utilisez C-tpour le montrer. Vous ne voulez probablement pas voir cette section tout le temps et devez donc la définir magit-popup-show-common-commands
sur nil
.
Bien sûr, il est également possible de définir la valeur de magit-commit-arguments
et d'autres variables de ce type à l'aide de l'interface personnalisée,, setq
ou add-to-list
. Mais je déconseille cela, car cela rendrait impossible de modifier les paramètres par défaut à la volée.
Pour autant que je peux dire Magit ne garde pas trace d'options « par défaut », mais nous pouvons faire ce « presse -v
» à chaque fois que la mémoire tampon Commettre apparaît:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Pour trouver la fonction à conseiller, j'ai ouvert un magic-status
tampon et appuyé sur C-h k c
. Cela m'a conduit à magit-key-mode-popup-committing
. Puis (avec le tampon de validation toujours affiché), j'ai appuyé sur C-h k -v
pour trouver le lambda
formulaire que Magit appelle lorsque vous appuyez sur -v
dans la fenêtre de validation.
Mise à jour: j'ai écrit cette réponse indépendamment, mais voir Puis-je avoir l'option git-log «--all» initialement sélectionnée? , la réponse qui y est donnée et les commentaires de cette réponse.
Dans les versions de magit qui utilisent des transitoires (après février 2019 environ), définissez l'indicateur, puis enregistrez tout en restant dans le tampon transitoire.
Donc, pour commit, la séquence de touches serait quelque chose comme
C-x g # start magit
s # to stage changes
c # start commiting
-v # enable verbose
C-x C-s # Save the setting persistently across sessions
c # do the actual commit
Après cela, la prochaine fois que commit sera invoqué, verbose sera toujours défini. (Vous n'avez pas à terminer la validation et pouvez quitter après avoir enregistré avec C-x C-s
.)
La valeur par défaut réelle est enregistrée dans un transient/
répertoire de .emacs.d/
.
Voir le manuel transitoire https://magit.vc/manual/transient.html#Saving-Values
Bien que ce ne soit pas exactement ce que vous voulez (diff dans votre tampon de validation), vous pouvez configurer magit pour étendre les différences intermédiaires dans la fenêtre d' état :
(setq magit-expand-staged-on-commit 'full)
Le flux de travail magit semble toujours être un tampon d'état ouvert, puis un fractionnement ouvert avec un tampon de validation, vous vous retrouvez toujours avec deux tampons affichés. Le paramètre ci-dessus fera que le deuxième tampon (auparavant inutile) affichera votre diff.
Vous pouvez également utiliser t
pour développer uniquement les en-têtes de différence (de sorte qu'il affiche les numéros de ligne):
(setq magit-expand-staged-on-commit t)
Pendant l'écriture de votre diff, vous pouvez basculer vers le tampon d'état et l'utiliser TAB
pour développer (ou plier) les diff.
Vous pouvez également utiliser à C-c C-d
partir du tampon de validation pour ouvrir un autre tampon avec un diff avec magit-diff-staged
. (Voir ce numéro .)
Depuis la magit
version 2.1
, vous pouvez l'utiliser dans votre configuration:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
est utile lorsque vous avez des projets qui utilisent des hooks git (à utiliser avec prudence, évidemment).