2011-09-26 4 views
7

मैं केवल खोज में खोज/खोज-प्रतिस्थापन/घटित करना चाहता हूं (जो टिप्पणियों या तारों में नहीं है)।Emacs में केवल कोड क्षेत्रों में कैसे संचालित (यानी खोज) कैसे करें?

यह एक आम समस्या होनी चाहिए, तो यह पैकेज पहले से ही क्या कर सकता है?

यदि कोई मौजूदा पैकेज ऐसा नहीं करता है, तो मैं एक मामूली-मोड सोच रहा हूं जहां फ़ॉन्टिंग के आधार पर तार और टिप्पणियां छिपी हुई हैं। क्या कोई है?

+0

[यहाँ एक संबंधित चर्चा है] (http://thread.gmane.org/gmane .emacs.devel/12 9 755) emacs-devel पर। स्पष्ट रूप से समस्या यह है कि आप उन हिस्सों को छुपा सकते हैं, लेकिन प्रतिस्थापित करने से इसे ध्यान में नहीं रखा जाएगा और यह छिपे हुए हिस्से में भी काम करेगा। – Tom

+0

यहां भी: http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/757fb08373f9fbf8 –

उत्तर

0

हाँ, आप सही हैं। HideShow मामूली मोड आपको विशेष रूप से मल्टीलाइन टिप्पणियों में टेक्स्ट के ब्लॉक को छुपाने/दिखाने की अनुमति देता है।

छुपा/शो टिप्पणियां मानक पैकेज का हिस्सा नहीं हैं लेकिन विकी पेज पर आपको वह कोड मिलेगा जो चाल करता है।

फिर isearch कमांड छिपी हुई टिप्पणियों को ध्यान में रखता नहीं है।

हाउवर: छुपा ब्लॉक सहित पूरे बफर पर संचालित होता है।

+0

इसे emacs 23.2 के साथ आजमाया, कुछ जावा कोड छुपाएं और छिपी हुई ब्लॉक की सामग्री को संशोधित करें अच्छा, तो यह वास्तव में सवाल का जवाब नहीं है। – Tom

+0

हां, प्रतिस्थापन पूरे बफर पर चल रहा है। हालांकि, खोज छिपे हुए ब्लॉक –

0

narrowing देखें।

+0

में नहीं दिखता है, मुझे उस प्रश्न से "कोड" शब्द याद आया। खैर, क्योंकि संकुचन इतना भयानक है, बीमार बेकार ढंग से यहां जवाब छोड़ दें। शायद आप कुछ elisp के साथ संकुचन और वाक्यविन्यास तालिका का उपयोग कर चाल कर सकते हैं। –

+0

इसे संकुचित करने में समस्या केवल बफर को एक संगत ब्लॉक में संकीर्ण कर सकती है। यह बहुत अच्छा होगा अगर emacs संकुचित करने के लिए कई क्षेत्रों का समर्थन करेगा। – Tom

2

Icicles search आपको ऐसा करने के कई तरीके प्रदान करता है।

  • खोज "बातें" (उदा defun रों, sexp रों, एक्सएमएल तत्व, आदि), टिप्पणियाँ अनदेखी (विकल्प icicle-ignore-comments-flag): यहाँ दो हैं। यही है, चयनित संदर्भ खंडों को खोज संदर्भों के रूप में उपयोग करें, लेकिन टिप्पणियों के अंदर कोड या कोड के भीतर किसी भी टिप्पणी को अनदेखा करें।

  • टिप्पणियों के complement खोजें। उदाहरण के लिए, खोज संदर्भों को टेक्स्ट के जोनों के पूरक के रूप में परिभाषित करें जो किसी भी चेहरे font-lock-comment-face के साथ फ़ॉन्ट-लॉक हैं या font-lock-comment-delimiter-face का सामना करें (जिसका अर्थ है टिप्पणियों के बाहर सभी कोड खोजें)।

खोज संदर्भों को परिभाषित करने के बाद, संदर्भों को क्रमशः फ़िल्टर करने के लिए टेक्स्ट टाइप करें। और आप मांग पर किसी भी मैच replace कर सकते हैं।

0

Isearch+ जो भी आप पूछते हैं (जैसा कि Icicles है --- ऊपर other answer देखें)।

आप कि iSearch खोजें संदर्भों परिभाषित कर सकते हैं, निम्न में से किसी का उपयोग कर:

  • एक regexp मिलान किया जा करने के लिए।
  • एक दिया गया पाठ या ओवरले संपत्ति --- खोज संदर्भों पाठ क्षेत्रों संपत्ति (जैसे एक विशेष `चेहरा 'मूल्य या मूल्यों के संयोजन)
  • एक दिया गया Emacs THING (sexp, defun, सूची है कि कर रहे हैं, स्ट्रिंग, टिप्पणी, इत्यादि) --- खोज संदर्भ दिए गए THING प्रकार के टेक्स्ट जोन हैं।

खोज संदर्भों में परिभाषित करने के बाद, आप भी खोज सकते हैं पूरक: गैर -contexts।C-M-~ का उपयोग करके, Isearch में किसी भी समय खोज संदर्भ और गैर-संदर्भों के बीच आप टॉगल कर सकते हैं।

खोज करते समय, डिफ़ॉल्ट रूप से खोजे जाने वाले क्षेत्रों को खोजे जाने योग्य क्षेत्रों को बनाने के लिए थोड़ा सा मंद हो जाता है।

लिए iSearch साथ संदर्भ खोज आप इन दो पुस्तकालयों की जरूरत है:

+0

यहां दी गई फाइलों के अलावा, पूरे icicle-stuff को लोड करने के लिए कहां? केवल https://github.com/emacsmirror/icicles/archive/master.zip –

+0

@ AndreasRöhler देख सकता है: Icicles डाउनलोड करने के कई तरीके हैं। उन्हें वर्णित किया गया है [यहां] (http://www.emacswiki.org/emacs/Icicles_-_ पुस्तकालय)। उदाहरण के लिए, आप [MELPA] (http://melpa.milkbox.net/) से Icicles प्राप्त कर सकते हैं। (लेकिन स्पष्ट होने के लिए, यहां वर्णित Isearch + फ़ाइलें Icicles से स्वतंत्र हैं।) – Drew

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