ฉันจะเปิดใช้งานการตั้งค่าสถานะ `- verbose 'โดยค่าเริ่มต้นในหน้าจอการมอบหมาย magit ได้อย่างไร


16

ตอนนี้แทนการกดเพียงccใน magit โหมดผมต้องกดทุกครั้งเพื่อเปิดใช้งานc-vc--verbose

เป็นไปได้ไหมที่จะเปิดใช้งานโดยค่าเริ่มต้น

คำตอบ:


17

เริ่มต้นด้วยv2.1.0Magit ใช้ไลบรารีmagit-popup.elเพื่อใช้ "บัฟเฟอร์ป๊อปอัพ" หรือ "คอมโบ prefix-infix-suffix" แม้จะมีชื่อไลบรารีนั้นสามารถใช้งานได้โดยแพ็คเกจที่ไม่เกี่ยวข้องกับ Magit ดังนั้นจึงมีให้เป็นแพ็คเกจ Elpa แยกต่างหาก มันยังมีคู่มือของตัวเองในขณะนี้!

อาร์กิวเมนต์เริ่มต้นสามารถตั้งค่าได้โดยตรงจากป๊อปอัพบัฟเฟอร์ หากต้องการใช้งานเสมอ--verboseเมื่อทำเช่นนี้:

  1. c แสดงป๊อปอัพที่ยืนยัน
  2. - v เปิด --verbose
  3. C-x C-sบันทึกข้อโต้แย้งที่ตั้งไว้ในปัจจุบันเป็นค่าเริ่มต้น (ในตัวเลือกที่กำหนดเองmagit-commit-arguments)

โดยค่าเริ่มต้นบัฟเฟอร์ป๊อปอัพทั้งหมดลงท้ายด้วยส่วนที่ชื่อว่า "คำสั่งทั่วไป" ถ้าไม่ใช้C-tเพื่อแสดงมัน คุณอาจไม่ต้องการที่จะเห็นส่วนนั้นตลอดเวลาและดังนั้นจึงควรตั้งเพื่อmagit-popup-show-common-commandsnil

แน่นอนมันยังเป็นไปได้ในการตั้งค่าของ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จากนั้น (ด้วยบัฟเฟอร์ Committing ยังคงปรากฏอยู่) ฉันกดC-h k -vเพื่อค้นหาการlambdaโทรแบบ Magit เมื่อคุณกด-vในหน้าต่างการส่ง

อัปเดต:ฉันเขียนคำตอบนี้อย่างอิสระ แต่ดูฉันจะเลือกตัวเลือก“ - ทั้งหมด” git-log ได้หรือไม่? คำตอบที่ให้ไว้ที่นั่นและแสดงความคิดเห็นต่อคำตอบนั้น


1
นั่นดูน่าสนใจ! ขอขอบคุณที่ยังอธิบายวิธีที่คุณพบฟังก์ชันเหล่านั้น :)
Dogbert

@Dogbert: โปรดดูลิงก์ในคำตอบที่ปรับปรุงหากคุณสนใจที่จะรู้ว่าคนอื่นคิดเกี่ยวกับตัวเลือก git เริ่มต้นเมื่อไม่นานมานี้ :-) (ฉันไม่รู้ว่าฉันพลาดเมื่อวานนี้)
Constantine

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

หลังจากนั้นในครั้งถัดไปที่คอมมิตถูกเรียกใช้ verbose จะยังคงถูกตั้งค่า (คุณไม่ต้องทำคอมมิทให้เสร็จและสามารถออกหลังจากบันทึกด้วยC-x C-s)

เริ่มต้นที่เกิดขึ้นจริงจะถูกบันทึกไว้ในไดเรกทอรีtransient/.emacs.d/

ดูคู่มือชั่วคราวของhttps://magit.vc/manual/transient.html#Saving-Values


0

แม้ว่าจะไม่ใช่สิ่งที่คุณต้องการอย่างแน่นอน (แตกต่างจากบัฟเฟอร์การกระทำของคุณ) คุณสามารถตั้งค่า 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เพื่อเปิดบัฟเฟอร์อื่นที่มีความแตกต่างกับ (ดูปัญหานี้)


0

เป็นmagitรุ่น2.1คุณสามารถใช้สิ่งนี้ในการกำหนดค่าของคุณ:

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

คุณไม่ควรทำอย่างนั้น ดูคำตอบของฉัน
Tarsius

@tarsius คุณมีจุดที่ถูกต้อง usecase ของฉันคือฉันซิงค์ dotfiles ระหว่างคอมพิวเตอร์หลายเครื่องและเมื่อฉันตั้งค่าเริ่มต้นมันควรเป็นค่าเริ่มต้นในคอมพิวเตอร์ทุกเครื่องของฉัน หากฉันต้องการเปลี่ยนฉันจะเปลี่ยนมันในการกำหนดค่าของฉันและมันจะถูกซิงค์กับคอมพิวเตอร์ทุกเครื่องของฉัน
Maiku Mori

1
โอ้และฉันไม่ได้ใช้ตัวเลือกที่กำหนดเองเพราะมันทำให้การกำหนดค่าของฉันยากที่จะเอกสาร ฉันชอบที่จะตั้งทุกอย่างชัดเจน
Maiku Mori

นอกจากนี้การตั้งค่า--no-verifyจะมีประโยชน์เมื่อคุณมีโครงการที่ใช้ git hooks (ใช้ด้วยความระมัดระวังและชัดแจ้ง)
Droogans
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.