如何在magit commit屏幕上默认启用--verbose标志?


16

现在,cc我不必c-vc每次都按magit模式,而必须每次按一次启用--verbose

是否可以默认启用它?

Answers:


17

从开始v2.1.0,Magit使用该库magit-popup.el来实现此类“弹出缓冲区”或“前缀-后缀-后缀组合”。尽管它的名字,该库可以被与Magit无关的软件包使用,因此可以作为单独的Elpa软件包使用。现在它甚至拥有自己的手册

现在可以直接从弹出缓冲区设置默认参数。要始终--verbose在提交时使用,请执行以下操作:

  1. c 显示提交的弹出窗口
  2. - v 打开 --verbose
  3. C-x C-s将当前设置的参数保存为默认值(在自定义选项中magit-commit-arguments

默认情况下,所有弹出缓冲区都以名为“公共命令”的部分结尾。如果不是,请使用C-t显示它。您可能不想一直看到该部分,因此应将其设置magit-popup-show-common-commandsnil

当然,也可以magit-commit-arguments使用“自定义”界面setq或来设置和其他变量的值add-to-list。但是我建议不要这样做,因为那样将无法即时更改默认值。


7

至于我可以告诉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”选项吗?,此处给出的答案以及对该答案的评论。


1
那很有意思!感谢您也解释了如何找到这些功能:)
Dogbert 2014年

@Dogbert:如果您不久前就知道其他人在考虑默认的git选项,请查看更新后的答案中的链接。:-)(我不知道我昨天怎么想的。)
君士坦丁

4

在使用瞬态的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/

请参阅临时手册https://magit.vc/manual/transient.html#Saving-Values


0

尽管这不是您想要的(提交缓冲区中的差异),但您可以设置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。(请参阅此问题。)


0

magitversion开始2.1,您可以在配置中使用它:

;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))

你不应该那样做。看我的答案。
tarsius

@tarsius您的观点正确。我的用例是,我在多台计算机之间同步我的点文件,并且当我设置默认值时,它应该在所有计算机上都是默认值。如果要更改它,只需在配置中更改它,它将在所有计算机上同步。
麦井森

1
哦,我不使用自定义选项,因为它使我的配置难以记录。我更喜欢显式设置所有内容。
Maiku Mori

另外,--no-verify当您有使用git hooks的项目时,设置很有用(显然要谨慎使用)。
Droogans,2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.