Answers:
从开始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
”每次犯下缓冲弹出:
(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年2月之后),设置该标志,然后保存在瞬态缓冲区中。
因此,对于提交,键序列将类似于
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
之后,下次调用commit时,仍将设置详细。(您不必完成提交,并且可以使用保存后退出C-x C-s
。)
实际的默认值保存在中的transient/
目录中.emacs.d/
。
尽管这不是您想要的(提交缓冲区中的差异),但您可以设置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
version开始2.1
,您可以在配置中使用它:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
当您有使用git hooks的项目时,设置很有用(显然要谨慎使用)。