2012-06-08 21 views
5

पर आधारित फ़ॉन्ट आकार को गतिशील रूप से बदलते हैं। मैं कोड लिखने के लिए एक छोटी नेटबुक पर Emacs का उपयोग कर रहा हूं, और मैंने फ़ॉन्ट आकार सेट किया है ताकि लगभग भरने-कॉलम (7 9) वर्ण भरें एक 'अधिकतम' विंडो की चौड़ाई (यानी बहुत बड़ा फ़ॉन्ट आकार)। हालांकि, अगर मैं दो खिड़कियों को एक तरफ खोलता हूं, तो मैं उन विंडो में फ़ॉन्ट आकार को स्वचालित रूप से सिकुड़ना चाहता हूं ताकि प्रत्येक विंडो की चौड़ाई कम से कम 79 वर्णों को समायोजित कर सके।Emacs विंडो चौड़ाई और भरने-कॉलम

इससे पहले कि मैं इसमें गहराई से देखना शुरू कर दूं (मैं लिस्प में अच्छा नहीं हूं), क्या प्रत्येक आकार पर खिड़की की चौड़ाई प्राप्त करना संभव है, इसे भरने वाले कॉलम से विभाजित करें, और उस परिणाम के आधार पर एक मोनोस्पेस्ड फ़ॉन्ट आकार का चयन करें ?

+0

यह संभव होना चाहिए, हालांकि प्रत्येक फ़ॉन्ट विभाजन के बाद फ़ॉन्ट की ऊंचाई निर्धारित करने में आपकी फ़ॉन्ट वरीयता में कुछ भूमिका निभाई जा सकती है। इन फ़ंक्शंस को 'फ्रेम-पिक्सेल-चौड़ाई' 'फ्रेम-चार-चौड़ाई' 'सेट-फेस-एट्रिब्यूट' देखें – kindahero

उत्तर

2

यह मेरे लिए यह करने के लिए सही जगह लगता है window-size-change-functions होगा:

कार्य पुन: प्रदर्शित होने से पहले कहा जाता है, अगर विंडो आकार बदल दिया है। मान उन कार्यों की एक सूची होनी चाहिए जो एक तर्क लेते हैं। प्रत्येक फ्रेम के लिए, रेडिसप्ले से ठीक पहले, यदि इसकी कोई भी विंडो पिछली रेडिस्प्ले के बाद आकार बदल गई है, या विभाजित हो गई है या हटा दी गई है, तो सूची में सभी फ़ंक्शंस को तर्क के रूप में फ्रेम के साथ बुलाया जाता है।

विशेष रूप से, अपने .emacs में कुछ इस तरह चिपके रहते हैं:

(defun window-width-to-font-size (window-width) 
    ;; Insert a calculation to turn window width into 79 chars. 
) 

(add-to-list 
'window-size-change-functions 
(lambda (frame) 
    (dolist (window (window-list frame)) 
    (set-face-attribute 
     'default nil 
     :width (window-width-to-font-size (window-body-width window)))))) 
0

हो सकता है कि पुस्तकालय face-remap+.el, जो अनिवार्य रूप विपरीत है पर एक नज़र डालें: यदि आप पाठ का आकार विंडो आकार के हिसाब से सिकुड़ता हटना है, तो पाठ के आस-पास कोई बर्बाद अतिरिक्त जगह नहीं है। डुनो क्या वह कोड मदद करेगा, लेकिन यह आपको कुछ विचार दे सकता है।

संबंधित मुद्दे