Risposte:
A partire da v2.1.0
Magit usa la libreria magit-popup.el
per implementare tali "buffer popup" o "combinazioni prefisso-infisso-suffisso". Nonostante il suo nome, quella libreria può essere utilizzata da pacchetti non correlati a Magit ed è quindi resa disponibile come pacchetto Elpa separato. Adesso ha persino un suo manuale !
Gli argomenti predefiniti ora possono essere impostati direttamente da un buffer popup. Per utilizzare sempre --verbose
quando si esegue il commit, procedere come segue:
--verbose
magit-commit-arguments
)Per impostazione predefinita, tutti i buffer popup terminano con una sezione denominata "Comandi comuni". In caso contrario, utilizzare C-tper mostrarlo. Probabilmente non vorrai vedere quella sezione tutto il tempo e dovresti quindi impostare magit-popup-show-common-commands
su nil
.
Ovviamente è anche possibile impostare il valore di magit-commit-arguments
e altre variabili simili usando l'interfaccia personalizzata setq
, o add-to-list
. Ma lo sconsiglio, perché ciò renderebbe impossibile cambiare al volo le impostazioni predefinite.
Per quanto posso dire Magit non tiene traccia di opzioni di "default", ma possiamo fare che "stampa -v
" ogni volta che il buffer Commettere apre:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Per trovare quale funzione consigliare, ho aperto un magic-status
buffer e premuto C-h k c
. Questo mi ha portato a magit-key-mode-popup-committing
. Quindi (con il buffer di commit ancora visualizzato) ho premuto C-h k -v
per trovare il lambda
modulo che Magit chiama quando si preme -v
nella finestra di commit.
Aggiornamento: ho scritto questa risposta in modo indipendente, ma vedi Posso inizialmente selezionare l'opzione "--all" di git-log? , la risposta fornita lì e i commenti a quella risposta.
Nelle versioni di magit che usano il transiente (dopo febbraio 2019 o giù di lì), imposta il flag e poi salva mentre sei ancora nel buffer dei transitori.
Quindi, per il commit, la sequenza di tasti sarebbe qualcosa di simile
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
Dopodiché, al successivo richiamo del commit, verrà comunque impostato il verbose. (Non è necessario completare il commit e puoi uscire dopo aver salvato con C-x C-s
.)
Il valore predefinito effettivo viene salvato in una transient/
directory in .emacs.d/
.
Consulta il manuale temporaneo https://magit.vc/manual/transient.html#Saving-Values
Sebbene non sia esattamente ciò che desideri (diff nel buffer di commit), puoi impostare magit per espandere le differenze organizzate nella finestra di stato :
(setq magit-expand-staged-on-commit 'full)
Il flusso di lavoro magit sembra essere sempre buffer di stato aperto e quindi aprire diviso con buffer di commit, si finisce sempre con due buffer visualizzati. L'impostazione sopra renderà il secondo (precedentemente non utile) display il tuo diff.
Puoi anche usare t
solo per espandere le intestazioni diff (quindi mostra i numeri di riga):
(setq magit-expand-staged-on-commit t)
Durante la scrittura del diff, è possibile passare al buffer di stato e utilizzare TAB
per espandere (o piegare) i diff.
In alternativa, è possibile utilizzare C-c C-d
dal buffer di commit per aprire un altro buffer con un diff con magit-diff-staged
. (Vedi questo numero .)
A partire dalla magit
versione 2.1
, puoi usarlo nella tua configurazione:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
è utile quando si hanno progetti che usano git hook (usare con cautela, ovviamente).