Respuestas:
Para empezar v2.1.0
, Magit usa la biblioteca magit-popup.el
para implementar tales "buffers emergentes" o "combos de prefijo-infijo-sufijo". A pesar de su nombre, esa biblioteca puede ser utilizada por paquetes no relacionados con Magit y, por lo tanto, está disponible como un paquete de Elpa separado. ¡Incluso tiene su propio manual ahora!
Los argumentos predeterminados ahora se pueden establecer directamente desde un búfer emergente. Para usar siempre --verbose
cuando se compromete, haga esto:
--verbose
magit-commit-arguments
)Por defecto, todos los buffers emergentes terminan con una sección llamada "Comandos comunes". Si no, úselo C-tpara mostrarlo. Probablemente no desee ver esa sección todo el tiempo y, por lo tanto, debe establecerla magit-popup-show-common-commands
en nil
.
Por supuesto, también es posible establecer el valor de magit-commit-arguments
y otras variables usando la interfaz personalizada setq
, o add-to-list
. Pero recomiendo contra eso, porque eso haría imposible cambiar los valores predeterminados sobre la marcha.
Por lo que puedo decir, Magit no realiza un seguimiento de las opciones "predeterminadas", pero podemos hacer que "presione -v
" cada vez que aparece el búfer de confirmación:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Para encontrar qué función aconsejar, abrí un magic-status
búfer y presioné C-h k c
. Esto me llevó a magit-key-mode-popup-committing
. Luego (con el tampón Cometer fija visualizada) presioné C-h k -v
para encontrar las lambda
llamadas Magit se forman cuando se pulsa -v
en la ventana de comprometerse.
Actualización: Escribí esta respuesta de forma independiente, pero vea ¿Puedo tener seleccionada inicialmente la opción git-log "--todos"? , la respuesta dada allí y los comentarios a esa respuesta.
En las versiones de magit que usan transitorios (después de febrero de 2019 más o menos), establezca la bandera y luego guarde mientras todavía está en el búfer transitorio.
Entonces, para commit, la secuencia de teclas sería algo así como
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
Después de eso, la próxima vez que se invoque commit, todavía se establecerá detallado. (No tiene que completar la confirmación y puede salir después de guardar con C-x C-s
).
El valor predeterminado real se guarda en un transient/
directorio en .emacs.d/
.
Consulte el manual transitorio https://magit.vc/manual/transient.html#Saving-Values
Si bien no es exactamente lo que desea (diff en su búfer de confirmación), puede configurar magit para expandir las diferencias escalonadas en la ventana de estado :
(setq magit-expand-staged-on-commit 'full)
El flujo de trabajo magit parece ser siempre un búfer de estado abierto y luego se abre dividido con el búfer de confirmación, siempre terminas con dos búferes mostrados. La configuración anterior hará que el segundo búfer (anteriormente no útil) muestre su diff.
También puede usar t
para expandir solo los encabezados diff (para que muestre los números de línea):
(setq magit-expand-staged-on-commit t)
Mientras escribe su diff, puede cambiar al búfer de estado y usar TAB
para expandir (o doblar) los diffs.
Alternativamente, puede usar C-c C-d
desde el búfer de confirmación para abrir otro búfer con un diff con magit-diff-staged
. (Ver este número ).
A partir de la magit
versión 2.1
, puede usar esto en su configuración:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
es útil cuando tiene proyectos que usan ganchos git (use con precaución, obviamente).