हाइलाइट-सिंबल-ए-पॉइंट के साथ हाइलाइट लाइट को अनहिल्ग कैसे करें


13

highlight-symbol-at-point वास्तव में उपयोगी है, हालांकि मैं प्रतीकों को उजागर करने का एक आसान तरीका नहीं ढूंढ सका।

वर्तमान में मुझे unhighlight-regexpप्रत्येक हाइलाइट किए गए प्रतीक के लिए बार-बार कॉल करना होगा ।

वहाँ एक बेहतर तरीका है:

  • एक बफर में सभी हाइलाइट किए गए प्रतीकों को अनहेल्दी करें
  • बिंदु पर एक चिन्ह अनहाइलाइट करें?

क्या आपको एक बार में सभी प्रतीकों को अनसुना करने की आवश्यकता है?
कौशल मोदी

अधिकांश समय - हाँ। कभी-कभी बिंदु पर किसी चिन्ह को खोलना भी उपयोगी होता है।
अगस्त्य

उत्तर अलग-अलग होंगे यदि आप बिंदु के तहत प्रतीक को अनहाइज करना चाहते हैं या सभी प्रतीकों को अनहेल्‍ट करें।
कौशल मोदी

मैंने अपने सवाल को अपडेट किया है
kostya

2
आप सभी हाइलाइट किए गए प्रतीकों को हटा सकते हैंM-x hi-lock-mode
अमीर करीमी

जवाबों:


10

क्या बफर में सभी हाइलाइट किए गए प्रतीकों को अनहाइज करने का एक बेहतर तरीका है?

से C-h f unhighlight-regexp, हम प्राप्त करते हैं

(unhighlight-regexp REGEXP)

हाय-लॉक द्वारा निर्धारित REGEXP के लिए प्रत्येक मैच का हाइलाइटिंग निकालें। अंत में, REGEXP के लिए संकेत देता है, केवल हाई-लॉक ​​इंटरैक्टिव फ़ंक्शंस द्वारा डाले गए केवल regexps को स्वीकार करता है। यदि REGEXP टी है (या यदि Cu को अंतःक्रियात्मक रूप से निर्दिष्ट किया गया था), तो सभी हाई-लॉक ​​हाइलाइटिंग को हटा दें।

इसका मतलब है कि हम केवल कॉल करने की जरूरत unhighlight-regexpके साथ tअपने तर्क के रूप में सभी उच्च ताला बफर में प्रकाश डाला दूर करने के लिए।

यदि यह एक बार की बात होती, तो यह जल्दी से हो सकता है M-: (unhighlight-regexp t)या C-u M-s h u। लेकिन ऐसा लगता है कि यह कुछ ऐसा है जिसे आपको अक्सर करने की आवश्यकता है। उस स्थिति में, इसे किसी interactiveफ़ंक्शन में लपेटना और इसे किसी कुंजी से बाँधना बेहतर है ।

नीचे एक प्रस्तावित समाधान जहां है my/unhighlight-all-in-bufferआवरण इंटरैक्टिव समारोह है और यह स्वाभाविक है hUमें search-map। डिफ़ॉल्ट रूप से search-mapउपसर्ग है M-s। तो अब, जैसा कि M-s h uलॉन्च किया गया है unhighlight-regexp, M-s h U(ध्यान दें कि राजधानी यू) लॉन्च हो my/unhighlight-all-in-buffer

(require 'hi-lock)        
(defun my/unhighlight-all-in-buffer ()
  "Remove all highlights made by `hi-lock' from the current buffer.
The same result can also be be achieved by \\[universal-argument] \\[unhighlight-regexp]."
  (interactive)
  (unhighlight-regexp t))
(define-key search-map "hU" #'my/unhighlight-all-in-buffer)

वहाँ बिंदु पर एक प्रतीक unhighlight करने के लिए एक बेहतर तरीका है?

अच्छी बात यह है कि आपको उस बिंदु पर रखने की ज़रूरत नहीं है, जिस पर आपको अनहोनी की आवश्यकता है।

आप बस कॉल M-x unhighlight-regexpया M-s h u(इसकी डिफ़ॉल्ट बाइंडिंग) और हिट M-p/ M-nजब तक आप प्रतीक के regexp के पार आ जाते हैं, तो आपको अनहेल्इट की आवश्यकता होती है, और एंटर दबाएं।


4

लाइब्रेरी हाइलाइट ( highlight.el), कमांड hlt-highlight-symbol-at-pointऔर का उपयोग करने का दूसरा तरीका है hlt-unhighlight-symbol-at-point

वे क्रमशः डिफ़ॉल्ट C-x X h sऔर C-x X u s, के लिए बाध्य हैं। सभी हाइलाइटिंग और अनहेलिंग कमांड C-x Xडिफ़ॉल्ट रूप से उपसर्ग कुंजी पर बंधे होते हैं । हाइलाइटिंग कमांड उपसर्ग कुंजी का उपयोग करते हैं C-x X h। Unhighlighting कमांड उपसर्ग कुंजी का उपयोग करते हैं C-x X u। आप C-x Xइसे उपसर्ग कमांड में बांधने की तुलना में एक अलग उपसर्ग कुंजी का उपयोग कर सकते हैं hlt-map

लाइब्रेरी में हाइलाइटिंग हाइलाइट ओवरले या टेक्स्ट प्रॉपर्टी (या दोनों) का उपयोग कर सकती है। हाइलाइटिंग चेहरे या रंग को स्वचालित रूप से चुना जा सकता है (चेहरे और रंगों के एक अनुकूलित क्रम से) या नहीं।

हाइलाइटिंग संपत्ति का उपयोग कर सकती है font-lock-face, ताकि इसे फॉन्ट लॉक मोड द्वारा नियंत्रित किया जाए। या यह संपत्ति का उपयोग कर सकता है face, ताकि यह इसके द्वारा नियंत्रित न हो। (आप faceफ़ॉन्ट-लॉक का उपयोग न करने वाले बफ़र्स में हाइलाइट करने के लिए संपत्ति का उपयोग कर सकते हैं , और फ़ॉन्ट लॉक मोड को बंद करने पर हाइलाइटिंग फ़ॉन्ट-बंद बफ़र्स में रहता है।)


4

C-u C-x w r

(unhighlight-regexp REGEXP) (...) यदि REGEXP t है (या यदि C-u अंतःक्रियात्मक रूप से निर्दिष्ट किया गया है), तो सभी हाई-लॉक ​​हाइलाइटिंग को हटा दें।


0

यह एक एकल चिह्न को अनहेल्इट करेगा:

(defun unhighlight-symbol-at-point ()
  "Remove highlight of symbol at point."
  (interactive)
  (unhighlight-regexp (concat "\\_<" (thing-at-point 'symbol) "\\_>")))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.