Ответы:
Начиная с v2.1.0Magit использует библиотеку magit-popup.elдля реализации таких «всплывающих буферов» или «комбинаций префикса-инфикса-суффикса». Несмотря на свое название, эта библиотека может использоваться пакетами, не связанными с Magit, и поэтому предоставляется в виде отдельного пакета Elpa. У него даже есть собственное руководство !
Параметры по умолчанию теперь могут быть установлены непосредственно из всплывающего буфера. Чтобы всегда использовать --verboseпри совершении сделайте это:
--verbosemagit-commit-arguments)По умолчанию все всплывающие буферы заканчиваются разделом «Общие команды». Если нет, используйте, C-tчтобы показать это. Вы, вероятно, не хотите видеть этот раздел все время и поэтому должны установить magit-popup-show-common-commandsна nil.
Конечно, также можно установить значение magit-commit-argumentsи других таких переменных с помощью пользовательского интерфейса setq, или add-to-list. Но я рекомендую против этого, потому что это сделало бы невозможным изменение настроек по умолчанию на лету.
Насколько я могу судить, Magit не отслеживает параметры «по умолчанию», но мы можем заставить его «нажимать -v» каждый раз, когда выскакивает буфер Committing:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Чтобы найти какую функцию посоветовать, я открыл magic-statusбуфер и нажал C-h k c. Это привело меня к magit-key-mode-popup-committing. Затем (с Совершением буфера все еще отображается) я нажал , C-h k -vчтобы найти lambdaформу Magit звонков , когда вы нажмете -vна Совершение окна.
Обновление: я написал этот ответ независимо, но посмотрите, могу ли я выбрать опцию git-log «--all»? , ответ дан там, и комментарии к этому ответу.
В версиях magit, в которых используется переходный процесс (после февраля 2019 г. или около того), установите флаг, а затем сохраните, находясь в буфере переходного процесса.
Так что для коммита последовательность клавиш будет что-то вроде
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
После этого, в следующий раз, когда будет зафиксирован коммит, будет установлен подробный текст. (Вам не нужно завершать фиксацию, и вы можете выйти после сохранения с помощью C-x C-s.)
Фактическое значение по умолчанию сохраняется в transient/каталоге в .emacs.d/.
См. Временное руководство https://magit.vc/manual/transient.html#Saving-Values
Хотя это не совсем то, что вы хотите (diff в вашем буфере коммитов), вы можете установить magit, чтобы расширить ступенчатые различия в окне состояния :
(setq magit-expand-staged-on-commit 'full)
Кажется, что рабочий процесс magit всегда является открытым буфером состояния, а затем открытым разделением с помощью буфера фиксации, в результате всегда отображаются два буфера. Приведенная выше настройка заставит второй (ранее бесполезный) буфер отображать ваши различия.
Вы также можете использовать tтолько для расширения заголовков diff (поэтому он показывает номера строк):
(setq magit-expand-staged-on-commit t)
Во время записи TABразличий вы можете переключиться в буфер состояния и использовать его для расширения (или сворачивания) различий.
В качестве альтернативы, вы можете использовать C-c C-dиз буфера фиксации, чтобы открыть другой буфер с помощью diff magit-diff-staged. (Смотрите эту проблему .)
Начиная с magitверсии 2.1, вы можете использовать это в вашей конфигурации:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verifyполезна, когда у вас есть проекты, в которых используются git-хуки (очевидно, используйте с осторожностью).