Прямо зараз, замість натискання просто cc
в режимі magit, мені потрібно c-vc
кожного разу натискати, щоб увімкнути --verbose
.
Чи можна зробити його включеним за замовчуванням?
Прямо зараз, замість натискання просто cc
в режимі magit, мені потрібно c-vc
кожного разу натискати, щоб увімкнути --verbose
.
Чи можна зробити його включеним за замовчуванням?
Відповіді:
Починаючи з цього 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 call, коли ви натискаєте -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
Хоча це не саме те, що ви хочете (відмінність у вашому буфері фіксації), ви можете встановити 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
. (Дивіться цю проблему .)
Станом на magit
версію 2.1
ви можете використовувати це у своєму конфігурації:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
корисно, коли у вас є проекти, які використовують гакі-гачки (очевидно, використовуйте з обережністю).