มันเป็นไปได้ที่จะกำหนดค่าว่าบัฟเฟอร์เปิด (ในเฟรมเดียวกัน / หน้าต่างหรือกรอบแตกต่างกัน / หน้าต่าง) display-buffer-alistโดยใช้ อ้างอิงถึงข้อมูลอ้างอิงด้านล่างเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับตัวแปรนี้
วิธีการแก้
เราจำเป็นต้องบอกให้ emacs เปิดบัฟเฟอร์ที่ลงท้ายด้วยCOMMIT_EDITMSGในหน้าต่างเสมอ แต่ไม่ใช่ใน*magit ..*หน้าต่าง( ) เดียวกัน
เพิ่มตัวอย่างต่อไปนี้ในinit.elภายหลัง(require 'magit)เพื่อระบุการกระทำนี้
(add-to-list 'display-buffer-alist
'(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
((inhibit-same-window . t)))))
รายละเอียดของการแก้ปัญหา
display-buffer-alistคือสิ่งalistที่เรียกใช้FUNCTION(หรือรายการฟังก์ชัน) พร้อมALISTพารามิเตอร์เมื่อ a CONDITIONเป็นจริง display-buffer-alistสามารถแสดงเป็น,
'(CONDITION . (FUNCTION . ALIST))
- นี่
CONDITIONคือชื่อบัฟเฟอร์ปลายด้วยและบอกว่าเป็นตัวแทนจากCOMMIT_EDITMSG".*COMMIT_EDITMSG"
- การ
FUNCTIONเรียกเป็นdisplay-buffer-pop-up-windowตามที่เราต้องการสร้างหน้าต่างสำหรับบัฟเฟอร์นี้ แทนที่จะระบุฟังก์ชั่นด้วยตัวเองมันจะใส่ไว้ในรายการของฟังก์ชั่นเดียว(display-buffer-pop-up-window)เพื่อให้สามารถเพิ่มฟังก์ชั่นเพิ่มเติมลงในรายการได้อย่างง่ายดายหากจำเป็นในอนาคต
ALISTมี(inhibit-same-window . t)ในขณะที่เราไม่ต้องการบัฟเฟอร์นี้เพื่อเปิดในหน้าต่างเดียวกัน
อ้างอิง