Emacs

2009-08-07 7 views
76

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

टेक्स्टमैट के शो वर्तमान स्कोप कमांड की तरह कुछ।

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

कोई विचार?

+0

यदि आप ** माउस ** कर्सर का उपयोग कर एक ही कार्यक्षमता की तलाश में हैं (यदि, उदाहरण के लिए, आपको प्रश्न में टेक्स्ट पर 'पॉइंट' नहीं मिल सकता है), देखें: https://emacs.stackexchange.com/ए/3544 9/13444 –

उत्तर

36

आप इस कोड के साथ 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 

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

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

+7

मैं jlf का उत्तर पसंद करता हूं क्योंकि यह अंतर्निहित कमांड का उपयोग करता है। –

+2

यह टेक्स्ट गुणों के रूप में सेट चेहरों को अनदेखा करता है। यदि 'एचएल-लाइन-मोड' सक्षम करें तो आप केवल चेहरे के रूप में 'hl-line' देखेंगे, न कि अन्य चेहरे। Https://gist.github.com/Wilfred/f7d61b7cdf9fdbb1d11c –

+0

[कार्ल फोगेल] (http://stackoverflow.com/users/247145/karl-fogel) इस कोड में एक बग इंगित करें [एक अलग उत्तर में] (http://stackoverflow.com/a/20844370/578288): आउटपुट संदेश का कहना है कि यह 'pos' पैरामीटर पर चेहरे का वर्णन कर रहा है, लेकिन चेहरे की पढ़ाई वास्तव में 'pos' के बजाय' (बिंदु) 'पर की जाती है '। –

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)))) 
+0

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

+0

इसके लिए जाएं - मैं आपको भी क्रेडिट का जवाब दूंगा। – thedz

135

एक उपसर्ग तर्क के साथ 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] 
+9

जो 'कर्सर-स्थिति' का आह्वान करता है। –

+0

वही है जो मैं खोज रहा हूं, धन्यवाद –

+0

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

51

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

+4

इसमें यह भी अच्छा लिंक शामिल है जिससे कर्सर के नीचे चेहरे को कस्टमाइज़ करना संभव हो जाता है – dolzenko

+1

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

+1

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

2

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

+2

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

+1

इससे भी बेहतर अगर यह ठीक हो गया ... वैसे भी इसे स्पॉट करने के लिए +1 – rath