2008-12-22 9 views
61

Notepad ++ एक सुविधाजनक सुविधा है: यदि आप (जरूरी नहीं एक कीवर्ड) अपने पाठ में एक शब्द का चयन, शब्द पाठ में हाईलाइट किए है। क्या यह Emacs में भी किया जा सकता है? और यदि हां, तो कैसे?Emacs बफर में किसी शब्द की सभी घटनाओं को कैसे हाइलाइट करें?

यह जरूरी बिल्कुल नोटपैड की तरह काम करने के लिए नहीं है ++ (अर्थात, चयन के माध्यम से); आदर्श रूप में, मैं एक कुंजी बाध्यकारी स्थापित करना चाहता हूं जो कर्सर के तहत शब्द की सभी घटनाओं को हाइलाइट करने का कारण बनता है।

हाइलाइट्स स्थायी थे, तो यह बहुत अच्छा होगा, यानी, हाइलाइट किए गए शब्द से दूर बिंदु को हाइलाइट को हटाया जाना चाहिए।

इसके अलावा, यह उपयोगी होगा अगर कोई समाधान था जिससे हाइलाइट्स (कस्टम कुंजी बाइंडिंग का उपयोग करके) नेविगेट करना संभव हो गया।

उत्तर

34

हो सकता है कि प्रकाश डाला-symbol.el http://nschum.de/src/emacs/highlight-symbol/ पर आप के लिए क्या देख रहे है:

alt text

+1

मैंने कोशिश की लेकिन इसे काम नहीं मिल सका - emacs ने शिकायत की है कि "चर के रूप में प्रतीक का मान शून्य है: हाइलाइट-प्रतीक-निष्क्रिय-देरी"। – Headcrab

+1

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

+0

हां, आखिरकार मैंने वही सही काम किया। – Headcrab

5

यह आप क्या उम्मीद कर रहे थे के रूप में के रूप में अच्छा नहीं हो सकता है लेकिन यदि आप अपने .emacs फ़ाइल में

(global-hi-lock-mode 1) 

डाल तो आप REGEX की सभी आवृत्तियां उजागर करने के लिए C-x w h REGEX <RET> <RET> लिख सकते हैं और C-x w r REGEX <RET> उन्हें फिर से unhighlight करने के लिए। फिर, जैसा कि आप शायद पसंद करेंगे उतना सुरुचिपूर्ण नहीं, लेकिन यह काम करेगा।

3

चेक Interactive Highlighting

होना चाहिए:

सी - एक्सडब्ल्यू शब्द < आरईटी >< आरईटी >

+0

सबसे पहले, हाय-लॉक-मोड को एम-एक्स हाय-लॉक-मोड द्वारा सक्षम किया जाना चाहिए। फिर, यह काम करता है। इंटरैक्टिव हाइलाइटिंग के लिए लिंक बीटीडब्ल्यू मर चुका है। यह अब यहां है: https: //www.gnu।संगठन/सॉफ्टवेयर/emacs/मैनुअल/html_node/emacs/हाइलाइट-Interactively.html – aspirin

10

Light-symbol पर प्रकाश डाला जाएगा जो कुछ भी प्रतीक बिंदु खत्म हो गया है।

वैकल्पिक रूप से, आप occur है, जो एक regexp मिलान सभी लाइनों को सूचीबद्ध करता है का उपयोग कर सकते हैं। कक्षा में सभी कार्यों को तुरंत देखना उपयोगी होता है।

+0

यह बहुत अच्छा लगता है, लेकिन यह कैसे पता चलता है कि उसे एक ही प्रतीक या एक ही नाम के साथ एक और प्रतीक मिला है? – HelloGoodbye

32

प्रकार C-s, तो वर्तमान शब्द लिखें या टाइप C-w। बोनस के रूप में, अब आप शब्द खोजने के लिए C-s पर क्लिक कर सकते हैं।

यह वृद्धिशील खोज कहा जाता है।

+5

इसके लायक होने के लिए, अब मुझे प्रश्न का इरादा पता है: आप चाहते हैं कि घटनाएं "स्थायी रूप से" (जब तक आप इसे बंद न करें) हाइलाइट करें, भले ही आप चारों ओर घूमने, टाइपिंग इत्यादि जैसे अन्य काम करते हैं। इसके लिए, सीएस (वृद्धिशील खोज) काम नहीं करेगा (हाइलाइटिंग "अस्थायी" है; आप बफर में स्थानांतरित कर सकते हैं लेकिन नया संपादन कार्य करना मुश्किल है)। मैं 'एम-एक्स हाइलाइट-रेगेक्सपी' समाधान (और इसे शॉर्टकट में बाध्य करता हूं) का उपयोग (और ऊपर उठाया गया है) का उपयोग करता हूं। – ShreevatsaR

66

hi-lock सुझाव अच्छे हैं।मुझे लगता है कि यह एमएक्स संस्करणों का उपयोग करना आसान है, हालांकि:

एमएक्सhighlight-regexpआरईटी<REGEXP>

एमएक्सhighlight-phraseआरईटी<REGEXP>

highlight-phrase चारों ओर चीनी का सिर्फ एक सा है highlight-regexp जो केस को अनदेखा करता है और रेगेक्स में एक स्थान का अनुवाद करता है मनमानी सफेद जगह से मेल खाना। हैंडी।

+4

हाइलाइट्स को आप कैसे साफ़ करते हैं? –

+18

हाइलाइट्स को साफ़ करने के लिए, 'एम-एक्स unhighligh-regex' कुंजी-तार: 'सी-एक्स डब्ल्यू आर' ... इसके अलावा, * हाइलाइट-वाक्यांश * पूरी तरह से असंवेदनशील नहीं है। केवल ** प्रारंभिक ** लोअर केस अक्षर (शब्दों के) एई केस असंवेदनशील बना दिया। (मुझे लगता है कि इसका उद्देश्य 'फ्रेड' बनाम 'फ्रेड'' से निपटना था। उदाहरण के लिए यह एक रेगेक्स उत्पन्न करता है जैसे: [[सीसी] [] + [डीडी] और –

+0

धन्यवाद, मुझे अंतर स्पष्टता के बारे में आपकी टिप्पणी मिलती है अंतर्निहित सहायता से। –

13

क्या मैं का उपयोग निष्क्रिय-उजागर

http://www.emacswiki.org/emacs/IdleHighlight

एम एक्स निष्क्रिय-उजागर एक निष्क्रिय टाइमर उस बिंदु के तहत शब्द के बफर में सभी आवृत्तियां पर प्रकाश डाला गया सेट करता है।

~/.emacs.d/init.el में, सभी प्रोग्रामिंग मोड के लिए इसे सक्षम करने के लिए:

पुस्तकालय में
;; highlight words 
(add-hook 'prog-mode-hook (lambda() (idle-highlight-mode t))) 
+0

मेरे पास लैम्ब्डा के अंदर के हुक के साथ कुछ असंगतताएं थीं। शायद एक defun बुलाओ पर विचार करें। –

2

आदेश highlight.el आपको (अन) मुख्य आकर्षण एक regexp (इस मामले में एक प्रतीक) मिलान पाठ, ओवरले का उपयोग कर या पाठ गुण। आप घटनाओं के बीच चक्र कर सकते हैं। हाइलाइटिंग अस्थायी या लगातार हो सकती है। (more info)

2

iedit आज़माएं। यह बिंदु पर शब्द को हाइलाइट करता है और आपको आसानी से सभी घटनाओं को संपादित करने देता है। एक अतिरिक्त कीस्ट्रोक (सी- ') के साथ, यह उस शब्द के बिना सभी पंक्तियों को छुपाता है। बेहद सुविधाजनक!

6

http://www.emacswiki.org/emacs/msearch.el कर्सर के साथ चुने गए पाठ के सभी अवसरों को हाइलाइट किया गया है। आपको उस स्ट्रिंग को खींचना है जिसे आप हाइलाइट करना चाहते हैं। इससे आपको हाइलाइट को बदलने के बिना आसानी से चयन को बदलने में मदद मिलती है।

यदि आप किसी स्ट्रिंग की हाइलाइटिंग को संरक्षित करना चाहते हैं तो आप इसे फ्रीज कर सकते हैं।

आप किसी अन्य बफर को बफर गुलाम बना सकते हैं। मास्टर बफर में चयनित टेक्स्ट को दास बफर में भी हाइलाइट किया जाएगा। यह बफर की तुलना करने के लिए उपयोगी है। जब आप किसी अन्य पाठ की जांच करते हैं तो यह एक बफर में नोट्स लेने के लिए भी उपयोगी होता है। आपके पास नोट्स बफर में कीवर्ड का संग्रह हो सकता है। जांच किए गए पाठ में ऐसे कीवर्ड और उसके अवसरों को खींचें हाइलाइट किया जाएगा।

मैं इस सामग्री का उपयोग कई वर्षों से कर रहा हूं। मैंने हाल ही में ठंड को जोड़ा। तो, शायद कुछ टूटा हुआ है। यदि यह मामला मुझे http://www.emacswiki.org/emacs/msearch या यहां पर एक नोट छोड़ देता है।

0

यह शायद उजागर नहीं होगा लेकिन आप इसे टाइप करने के लिए की जरूरत के बिना एक शब्द के लिए खोज करेंगे ...

जब आप शब्द आप खोज करना चाहता था पहुँच गए हैं, सीएस, तो सीडब्ल्यू के साथ पूर्ण शब्द पढ़ तो आप सीएस कर सकते हैं और यह इसके लिए खोज करेगा। मेरे Emacs में यह दस्तावेज़ में सभी उदाहरणों को भी हाइलाइट करता है।

संबंधित मुद्दे