क्या बफर में सभी हाइलाइट किए गए प्रतीकों को अनहाइज करने का एक बेहतर तरीका है?
से 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 के पार आ जाते हैं, तो आपको अनहेल्इट की आवश्यकता होती है, और एंटर दबाएं।