वर्णन-चेहरा चरित्र कर्सर के तहत / पहुंच से बाहर नहीं


15

मुझे अपने काम के माहौल की उपस्थिति को समायोजित करने describe-faceऔर संयोजन करने का उपयोग करना पसंद customize-faceहै। जब मैं किसी ऐसे स्थान का चेहरा बदलना चाहता हूं, जो कर्सर के साथ नहीं पहुंच सकता है, तो यह वर्कफ़्लो विफल हो जाता है; मोड-लाइन, हेडर-लाइन, मैगिट-ब्लेम हेडर आदि। अधिकांश समय, मैं अपने समाधान के लिए अपना रास्ता निकाल सकता हूं और त्रुटि कर सकता हूं लेकिन कभी-कभी मैं अटक जाता हूं (मुझे नहीं पता था कि हेडर-लाइन अस्तित्व के लिए कल तक मौजूद थी) ।

क्या किसी फ्रेम में किसी स्थान के चेहरे का वर्णन करने का एक सुविधाजनक तरीका है जो कर्सर द्वारा उपलब्ध नहीं है? उदाहरण के लिए एक माउस के माध्यम से।

जवाबों:


7

मुझे माउस का उपयोग करने के बारे में नहीं पता है, लेकिन मैंने अक्सर पाया कि मेरे लिए इसे चलाना सबसे आसान है list-faces-displayऔर फिर मैं केवल उसी चीज़ की खोज करता हूं, जो चेहरे पर दिखाई देती है या पाठ के लिए नेत्रहीन स्कैन जो समान दिखता है।


1
यह जवाब है, IMHO। प्रदर्शन WYSIWYG है, और यह आपको दिए गए चेहरे के लिए कस्टमाइज़ बफ़र के लिए सीधी पहुँच और पूर्ण विवरण के लिए सीधी पहुँच प्रदान करता है।
आकर्षित किया

मैं सहमत हूं और मैंने स्थिति बदल दी है। अन्य समाधान शांत है, लेकिन सुविधाजनक नहीं है।
9

9

4 क्षेत्र हैं जहां पाठ Emacs में प्रदर्शित किए जा सकते हैं, यहां आप उनमें से प्रत्येक का निरीक्षण करने के लिए क्या कर सकते हैं।

  • मोड-लाइन : का मान देखें mode-line-format
  • हेडर-लाइन : का मान देखें header-line-format
  • बफ़र : यदि चेहरा बफ़र के उस क्षेत्र में है जिस तक आप नहीं पहुँच सकते, तो इसका मान देखें (buffer-string)
  • मिनीबफ़र : यदि बिंदु वर्तमान में मिनीबफ़र में है, तो आप कर सकते हैं M-: (buffer-string), और यह मिनीबफ़र की सामग्री का वर्णन करेगा। आपको (setq enable-recursive-minibuffers to t)पहले की आवश्यकता हो सकती है ।
  • फ्रिंज या मार्जिन : कोई भी नहीं जिसे मैं जानता हूं।

ये विधियां आपको इन क्षेत्रों की संपूर्ण सामग्री प्रदान करेंगी, इसलिए वास्तव में आप जिस चेहरे की तलाश कर रहे हैं उसे ढूंढने के लिए कुछ पढ़ना हो सकता है, लेकिन यह निश्चित रूप से वहां होगा। सबसे महत्वपूर्ण बात, यह उन क्षेत्रों का भी वर्णन करेगा, जिन तक आप नहीं पहुँच सकते।
उदाहरण के लिए, मान लें कि मैं जानना चाहता हूं कि find-fileप्रॉम्प्ट में किस चेहरे का उपयोग किया गया है ।

  1. के साथ फाइंड-फाइल मंगवाएं C-x C-f
  2. के साथ मिनीबार का वर्णन करें M-: (buffer-string)

यह निम्न आउटपुट जैसा कुछ देगा, और अंत में वह चेहरा है जिसे मैं देख रहा था।

#("Find file: ~/" 0 11 (front-sticky t rear-nonsticky t field t read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt))

दिलचस्प! मुझे नहीं पता था (buffer-string)। लेकिन मैं इसे कैसे बुझाता हूं जबकि मैं मिनीबफ़र में हूं बिना पैदावार के "कमांड का इस्तेमाल मिनीबफ़र में करते हुए मिनीबफ़र का उपयोग करने का प्रयास किया"?
पुनर्विचार करें

@remvee आह, चर सक्षम करें-पुनरावर्ती-मिनीबफ़र को टी पर सेट करें
मालाबार

फ्रिंज के बारे में क्या?
तिखन जेल्विस

@TikhonJelvis ओह, अच्छी बात है। यह मैं नहीं जानता।
मालाबार

मुझे लगता है कि मार्जिन भी छोड़ देता है?
सिग्मा

3

पता चलता है कि आप वास्तव में माउस का उपयोग कर सकते हैं (मुझे लगता है कि यह वही हो सकता है जो आप देख रहे थे):

  ;; based on: /emacs//a/19585/13444
  (defun brds/describe-char-at-mouse-click (click-event)
    "`describe-char' at CLICK-EVENT's position.
CLICK-EVENT should be a mouse-click event."
    (interactive "e")
    (run-hooks 'mouse-leave-buffer-hook)
    (let ((pos (cadr (event-start click-event))))
      (describe-char pos)))

  ;; <d>escribe
  (global-set-key (kbd "C-c d <down-mouse-1>")
                  #'brds/describe-char-at-mouse-click)

यह मेरे लिए मॉडल में काम नहीं करता है। क्या यह प्रश्न में वर्णित किसी भी स्थान पर आपके लिए काम करता है?
जॉक

magit-blameहेडर पर मेरे लिए काम करता है , साथ ही न्यूनतम, मिनीबफ़र पूरा करने वाले उम्मीदवारों, मिनीबफ़र प्रॉम्प्ट और कंपनी पॉपअप पर। उस ने कहा, यह मेरे लिए तब काम नहीं कर रहा है जब मैं इसे मोड- या हेडर-लाइन पर कहता हूं: जो मुझे देते हैं (wrong-type-argument number-or-marker-p header-line)(या [...] mode-lineक्रमशः)। मुझे लगता है कि वे विशेष रूप से विशेष मामले (फ्रिंज और मार्जिन के साथ) हो सकते हैं।
ब्रह्म-स्नाइडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.