Ответы:
Начиная с v2.1.0
Magit использует библиотеку magit-popup.el
для реализации таких «всплывающих буферов» или «комбинаций префикса-инфикса-суффикса». Несмотря на свое название, эта библиотека может использоваться пакетами, не связанными с Magit, и поэтому предоставляется в виде отдельного пакета Elpa. У него даже есть собственное руководство !
Параметры по умолчанию теперь могут быть установлены непосредственно из всплывающего буфера. Чтобы всегда использовать --verbose
при совершении сделайте это:
--verbose
magit-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-хуки (очевидно, используйте с осторожностью).