यह कॉन्फ़िगर करना संभव है कि कैसे एक बफर खुलता है (उसी फ्रेम / विंडो या एक अलग फ्रेम / विंडो का उपयोग करके) 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साथ (या कार्यों की सूची) कहता है। के रूप में प्रतिनिधित्व किया जा सकता है,ALISTCONDITIONdisplay-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)क्योंकि हम नहीं चाहते कि यह बफर उसी विंडो में खुले।
संदर्भ