Emacs में कर्सर के नीचे फ़ॉन्ट फेस करें


96

मैं अपना स्वयं का कस्टम रंग विषय विकसित कर रहा हूं, और अगर मैं कर्सर के नीचे पाठ को प्रभावित करने वाले फ़ॉन्ट-चेहरों की सूची प्राप्त कर सकता हूं तो यह वास्तव में उपयोगी होगा।

कुछ ऐसा है जैसे टेक्सटमेट का शो करंट स्कोप कमांड।

यह मुझे Mx कस्टमाइज़-फेस करने और उपलब्ध विकल्पों को देखने की परेशानी से बचाएगा, जिससे यह अनुमान लगाया जा सकता है कि कोई मेरे वर्तमान शब्द को प्रभावित करता है।

कोई विचार?


यदि आप माउस कर्सर का उपयोग करके समान कार्यक्षमता की तलाश कर रहे हैं (यदि, उदाहरण के लिए, आप pointप्रश्न में पाठ पर नहीं मिल सकते हैं ), तो देखें: emacs.stackexchange.com/a/35449/13444
ब्रह्म स्नाइडर

जवाबों:


42

आप what-faceइस कोड से परिभाषित कर सकते हैं :

(defun what-face (pos)
  (interactive "d")
  (let ((face (or (get-char-property (pos) 'read-face-name)
                  (get-char-property (pos) 'face))))
    (if face (message "Face: %s" face) (message "No face at %d" pos))))

उसके बाद,

M-x what-face

वर्तमान बिंदु पर पाए जाने वाले चेहरे को प्रिंट करेगा।

(के लिए धन्यवाद thedz उनका कहना है कि के लिए what-faceमें नहीं बनाया गया था।)


3
यह पाठ गुणों के रूप में सेट किए गए चेहरे की अनदेखी करता है। यदि सक्षम है hl-line-modeतो आप केवल hl-lineचेहरे के रूप में देखेंगे , अन्य चेहरे के रूप में नहीं। Gist.github.com/Wilfred/f7d61b7cdf9fdb1d11c
Wilfred Hughes

2
कार्ल फोगेल ने एक अलग जवाब में इस कोड में एक बग को इंगित किया : आउटपुट संदेश कहता है कि यह चेहरे को posपैरामीटर पर वर्णन कर रहा है , लेकिन चेहरे का पढ़ना वास्तव में इसके (point)बजाय पर किया गया है pos
रोरी ओ'केन

यह काम नहीं करता है, आप इसके बजाय "एमएक्स विवरण-फेस" का उपयोग कर सकते हैं।
luochen1990

2
posकोई कार्य नहीं है; क्रम में बनाने का टुकड़ा काम करते हैं, आप बदलना चाहिए (pos)साथ posलाइनों 3 और 4 पर
cebola

172

what-cursor-position एक उपसर्ग तर्क के साथ अन्य जानकारी के बीच बिंदु के नीचे चेहरा दिखाता है।

कीबोर्ड शॉर्टकट Cu Cx = है

उदाहरण आउटपुट (चेहरे की संपत्ति अंतिम पैराग्राफ में दिखाई गई है):

             position: 5356 of 25376 (21%), column: 4
            character: r (displayed as r) (codepoint 114, #o162, #x72)
    preferred charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x72
               syntax: w    which means: word
             category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, r:Roman
          buffer code: #x72
            file code: #x72 (encoded by coding system undecided-unix)
              display: by this font (glyph code)
    nil:-apple-Monaco-medium-normal-normal-*-12-*-*-*-m-0-iso10646-1 (#x55)

Character code properties: customize what to show
  name: LATIN SMALL LETTER R
  general-category: Ll (Letter, Lowercase)
  decomposition: (114) ('r')

There are text properties here:
  face                 org-level-2
  fontified            t

[back]

11
जो आह्वान करता है what-cursor-position
viam0Zah

हम्म, कभी-कभी यह क्या-कर्सर-स्थिति को आमंत्रित करता है, कभी-कभी यह बफर गुणों (फ़ॉन्ट सहित) की एक सूची प्रदर्शित करता है। यदि मुझे पूर्व व्यवहार मिलता है, तो कर्सर को आगे बढ़ाना और उत्तरार्द्ध को दोहराता है।
22

2
मुझे बहुत खुशी है कि मैंने इसे पाया, कुछ अज्ञात आदेशों और कीस्ट्रोक्स के संयोजन के साथ emacsमुझे यह प्रदर्शित करने के लिए मिला कि मैं इसे कैसे पसंद करता हूं और अपने अगले पुनरारंभ में इसे वापस कैसे लाया नहीं गया
मिसेबल वेरिएबल

2
यह Emacs GUI पर फ़ॉन्ट नाम दिखाता है। टर्मिनल पर, Emacs फ़ॉन्ट सेट करने के लिए ज़िम्मेदार नहीं है और इसलिए जब C-u C-x =टर्मिनल पर चल रहे Emacs में इस तरह की जानकारी उपलब्ध नहीं होती है, जैसे emacs -nw file.txt
फर्नांडो बैसो

67

एमएक्स वर्णन-चेहरा


5
इसमें कर्सर के तहत चेहरे को तुरंत अनुकूलित करना संभव बनाने वाला अच्छा लिंक भी शामिल है
dolzenko

2
यह ज्यादातर समय अच्छी तरह से काम करता है, लेकिन कभी-कभी कारणों से मैं कभी-कभी यह पता नहीं लगा सकता कि यह उस चेहरे का सुझाव नहीं देता है जिसकी मुझे तलाश है। उदाहरण के लिए जब कोई एएनसी रंग होता है तो इसे "डिफ़ॉल्ट" कहा जाता है।
सैमुअल एडविन वार्ड

2
यह मुझे एक संकेत दिखाता है जहां मैं कुछ दर्ज कर सकता हूं। कर्सर के तहत फ़ॉन्ट का वर्णन करने के लिए मुझे क्या दर्ज करना होगा?
ज़ेलफिर कल्टस्टाहल

1
इसने मुझे ऑर्ग-मोड में कोड ब्लॉक फोंट को अनुकूलित करने के लिए काम किया। @Zelphir, प्रॉम्प्ट से पहले पाठ ने चेहरा दिखाया, मेरे मामले में कम से कम। आप बस हिट कर सकते हैं return। उदाहरण के लिए मेरा रिजल्ट पढ़ा Describe face (default ‘org-block-background’):
मैलोरी-एरिक

8

ट्रे का चेहरा सही रास्ते पर है। यह मुझे एक मेलिंग सूची पर एक ईमेल के लिए ले गया, जिसमें यह था:

(defun what-face (pos)
    (interactive "d")
        (let ((face (or (get-char-property (point) 'read-face-name)
            (get-char-property (point) 'face))))
    (if face (message "Face: %s" face) (message "No face at %d" pos))))

Duh, यह भूल गया कि यह Emacs के साथ बंडल नहीं था। क्या मैंने स्रोत को अपने उत्तर w / अटेंशन में रखा है? :)
ट्रेक जैक्सन

2

बजाय इसे इस्तेमाल करता है "(बिंदु)" भले ही बाद में संदेश, - समारोह एक तर्क के रूप में "स्थिति" लगता है लेकिन फिर इसे का उपयोग नहीं करता जब चेहरे हो रही: वहाँ `क्या-सामने 'कोड में एक बग है का दावा है स्थिति "% d पर कोई चेहरा नहीं" मामले में।


2
यह उस उत्तर पर टिप्पणी के रूप में बेहतर होगा।
एडम स्पियर्स

1
इससे भी बेहतर अगर यह एक ठीक था ... +1 इसे वैसे भी स्पॉट करने के लिए
रथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.