ตอนนี้แทนการกดเพียงcc
ใน magit โหมดผมต้องกดทุกครั้งเพื่อเปิดใช้งานc-vc
--verbose
เป็นไปได้ไหมที่จะเปิดใช้งานโดยค่าเริ่มต้น
ตอนนี้แทนการกดเพียงcc
ใน magit โหมดผมต้องกดทุกครั้งเพื่อเปิดใช้งานc-vc
--verbose
เป็นไปได้ไหมที่จะเปิดใช้งานโดยค่าเริ่มต้น
คำตอบ:
เริ่มต้นด้วยv2.1.0
Magit ใช้ไลบรารีmagit-popup.el
เพื่อใช้ "บัฟเฟอร์ป๊อปอัพ" หรือ "คอมโบ prefix-infix-suffix" แม้จะมีชื่อไลบรารีนั้นสามารถใช้งานได้โดยแพ็คเกจที่ไม่เกี่ยวข้องกับ 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
จากนั้น (ด้วยบัฟเฟอร์ 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 (ใช้ด้วยความระมัดระวังและชัดแจ้ง)