Як я можу зробити так, щоб прапор `--verbose` був включений за замовчуванням на екрані magit commit?


16

Прямо зараз, замість натискання просто ccв режимі magit, мені потрібно c-vcкожного разу натискати, щоб увімкнути --verbose.

Чи можна зробити його включеним за замовчуванням?

Відповіді:


18

Починаючи з цього 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-commandsйого nil.

Звичайно, також можна встановити значення 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 call, коли ви натискаєте -vу вікні "Здійснення".

Оновлення: цю відповідь я написав самостійно, але див. Чи можу я спочатку вибрати параметр git-log “--all”? , відповідь, надана там, та коментарі до цієї відповіді.


1
Це цікаво! Дякую, що ви також пояснили, як ви знайшли ці функції :)
Wile E. Coyote

@Dogbert: перегляньте посилання в оновленій відповіді, якщо ви хочете знати, що інші думали про параметри git за замовчуванням не так давно. :-) (Я не знаю, як я пропустив це вчора.)
Костянтин

4

У версіях 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


0

Хоча це не саме те, що ви хочете (відмінність у вашому буфері фіксації), ви можете встановити magit для розширення поетапних відмінностей у вікні стану :

(setq magit-expand-staged-on-commit 'full)

Магітний робочий процес, здається, завжди є буфером відкритого статусу, а потім відкритим розділенням з буфером фіксації, ви завжди отримуєте два буфери. Наведене вище налаштування зробить другий (раніше не корисний) буфер відображенням.

Можна також використовувати tлише розширення заголовків diff (щоб вони відображали номери рядків):

(setq magit-expand-staged-on-commit t)

Під час написання вашої різниці ви можете переключитися на буфер стану та використовувати TABдля розширення (або складання) розрізків.


Альтернативно, ви можете використовувати C-c C-dз буфера фіксації, щоб відкрити інший буфер, що відрізняється з magit-diff-staged. (Дивіться цю проблему .)


0

Станом на magitверсію 2.1ви можете використовувати це у своєму конфігурації:

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

Ти не повинен цього робити. Дивіться мою відповідь.
Тарсій

@tarsius У вас є дійсна точка. Моя справа полягає в тому, що я синхронізую свої точкові файли між декількома комп’ютерами, і коли я встановлюю за замовчуванням, він повинен бути типовим на всіх моїх комп'ютерах. Якщо я хочу змінити його, я просто зміню його у своєму конфігурації, і він буде синхронізований на всіх моїх комп'ютерах.
Майку Морі

1
О, і я не використовую спеціальні параметри, тому що це робить мою конфігурацію важкою для документування. Я вважаю за краще все встановити прямо.
Майку Морі

Крім того, налаштування --no-verifyкорисно, коли у вас є проекти, які використовують гакі-гачки (очевидно, використовуйте з обережністю).
Droogans
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.