ตอนนี้แทนการกดเพียงccใน magit โหมดผมต้องกดทุกครั้งเพื่อเปิดใช้งานc-vc--verbose
เป็นไปได้ไหมที่จะเปิดใช้งานโดยค่าเริ่มต้น
ตอนนี้แทนการกดเพียงccใน magit โหมดผมต้องกดทุกครั้งเพื่อเปิดใช้งานc-vc--verbose
เป็นไปได้ไหมที่จะเปิดใช้งานโดยค่าเริ่มต้น
คำตอบ:
เริ่มต้นด้วยv2.1.0Magit ใช้ไลบรารีmagit-popup.elเพื่อใช้ "บัฟเฟอร์ป๊อปอัพ" หรือ "คอมโบ prefix-infix-suffix" แม้จะมีชื่อไลบรารีนั้นสามารถใช้งานได้โดยแพ็คเกจที่ไม่เกี่ยวข้องกับ Magit ดังนั้นจึงมีให้เป็นแพ็คเกจ Elpa แยกต่างหาก มันยังมีคู่มือของตัวเองในขณะนี้!
อาร์กิวเมนต์เริ่มต้นสามารถตั้งค่าได้โดยตรงจากป๊อปอัพบัฟเฟอร์ หากต้องการใช้งานเสมอ--verboseเมื่อทำเช่นนี้:
--verbosemagit-commit-arguments)โดยค่าเริ่มต้นบัฟเฟอร์ป๊อปอัพทั้งหมดลงท้ายด้วยส่วนที่ชื่อว่า "คำสั่งทั่วไป" ถ้าไม่ใช้C-tเพื่อแสดงมัน คุณอาจไม่ต้องการที่จะเห็นส่วนนั้นตลอดเวลาและดังนั้นจึงควรตั้งเพื่อmagit-popup-show-common-commandsnil
แน่นอนมันยังเป็นไปได้ในการตั้งค่าของ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จากนั้น (ด้วยบัฟเฟอร์ Committing ยังคงปรากฏอยู่) ฉันกดC-h k -vเพื่อค้นหาการlambdaโทรแบบ Magit เมื่อคุณกด-vในหน้าต่างการส่ง
อัปเดต:ฉันเขียนคำตอบนี้อย่างอิสระ แต่ดูฉันจะเลือกตัวเลือก“ - ทั้งหมด” git-log ได้หรือไม่? คำตอบที่ให้ไว้ที่นั่นและแสดงความคิดเห็นต่อคำตอบนั้น
ในเวอร์ชันของ 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
หลังจากนั้นในครั้งถัดไปที่คอมมิตถูกเรียกใช้ verbose จะยังคงถูกตั้งค่า (คุณไม่ต้องทำคอมมิทให้เสร็จและสามารถออกหลังจากบันทึกด้วยC-x C-s)
เริ่มต้นที่เกิดขึ้นจริงจะถูกบันทึกไว้ในไดเรกทอรีtransient/.emacs.d/
ดูคู่มือชั่วคราวของhttps://magit.vc/manual/transient.html#Saving-Values
แม้ว่าจะไม่ใช่สิ่งที่คุณต้องการอย่างแน่นอน (แตกต่างจากบัฟเฟอร์การกระทำของคุณ) คุณสามารถตั้งค่า magit เพื่อขยายส่วนต่างฉากในหน้าต่างสถานะ :
(setq magit-expand-staged-on-commit 'full)
เวิร์กโฟลว์ magit ดูเหมือนจะเป็นบัฟเฟอร์สถานะเปิดเสมอและจากนั้นเปิดแยกด้วยการมอบหมายบัฟเฟอร์คุณมักจะจบลงด้วยการแสดงบัฟเฟอร์สองครั้ง การตั้งค่าด้านบนจะทำให้บัฟเฟอร์ที่สอง (ก่อนหน้านี้ไม่มีประโยชน์) แสดง diff ของคุณ
คุณสามารถใช้tเพื่อขยายส่วนหัว diff เท่านั้น (เพื่อแสดงหมายเลขบรรทัด):
(setq magit-expand-staged-on-commit t)
ในขณะที่เขียน diff ของคุณคุณสามารถสลับไปที่บัฟเฟอร์สถานะและใช้TABเพื่อขยาย (หรือพับ) diffs
หรือคุณสามารถใช้C-c C-dจากกระทำ buffer magit-diff-stagedเพื่อเปิดบัฟเฟอร์อื่นที่มีความแตกต่างกับ (ดูปัญหานี้)
เป็นmagitรุ่น2.1คุณสามารถใช้สิ่งนี้ในการกำหนดค่าของคุณ:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verifyจะมีประโยชน์เมื่อคุณมีโครงการที่ใช้ git hooks (ใช้ด้วยความระมัดระวังและชัดแจ้ง)