Прямо зараз, замість натискання просто ccв режимі magit, мені потрібно c-vcкожного разу натискати, щоб увімкнути --verbose.
Чи можна зробити його включеним за замовчуванням?
Прямо зараз, замість натискання просто ccв режимі magit, мені потрібно c-vcкожного разу натискати, щоб увімкнути --verbose.
Чи можна зробити його включеним за замовчуванням?
Відповіді:
Починаючи з цього v2.1.0, Magit використовує бібліотеку magit-popup.elдля реалізації таких "буферів спливаючих вікон" або "комбінацій суфіксів префікса-інфіксації". Незважаючи на свою назву, ця бібліотека може використовуватися пакетами, не пов'язаними з Magit, і тому стає доступною як окремий пакет Elpa. У нього навіть є власний посібник !
Аргументи за замовчуванням тепер можна встановлювати безпосередньо з буфера спливаючих вікон. Щоб завжди використовувати --verboseпри вчиненні, виконайте це:
--verbosemagit-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корисно, коли у вас є проекти, які використовують гакі-гачки (очевидно, використовуйте з обережністю).