2010-09-25 25 views
8

मैं वर्तमान में स्विचिंग प्रक्रिया की शुरुआत में Emacs की शुरुआत में हूं। हालांकि मुझे दो बुनियादी समस्याएं हैं।Emacs खोज और कई फाइलें खोलें और सभी बफर पर खोजें

  1. मैं एक विशिष्ट पथ से कई फ़ाइलों को दोबारा कैसे खोजूं? मुझे लगता है कि मुझे find/grep/dired का उपयोग करना है, लेकिन मुझे यकीन नहीं है। उदाहरण के लिए, मैं पथ C:/src/xxx पर सभी *.scala फ़ाइलों को ढूंढना चाहूंगा। जब ये फ़ाइलें मिलती हैं तो मैं उन्हें सभी को बफर में एक साथ खोलना भी चाहूंगा। वर्तमान में मुझे पता है कि एकमात्र तरीका सी-एक्ससी-एफ है।

  2. जब ये सभी फ़ाइलें बफर में हैं तो मैं सभी बफरों में कैसे खोज करूं, और परिणाम की किसी प्रकार की सूची प्राप्त कर सकता हूं और/या परिणामस्वरूप परिणाम से नेविगेट कर सकता हूं? कह रहा है कि मैं टेक्स्ट case Int => टेक्स्ट के साथ सभी जगहों को ढूंढना चाहता हूं।

+0

http://www.emacswiki.org/emacs/SearchBuffers, http://www.emacswiki.org/emacs/CategorySearchAndReplace – Anycorn

+0

http://www.emacswiki.org/emacs/Icicles_ -_File-Name_Input – Anycorn

उत्तर

8

मैं phimuemue के उत्तर के साथ सहमत हूं, लेकिन मैं M-x rgrep को भी इंगित करूंगा, जो वास्तव में फ़ाइलों को खोलने के बिना सभी मैचों को प्रस्तुत करने के लिए आवश्यक खोज/grep चलाएगा। एक मैच का चयन करने के बाद उस लाइन नंबर पर प्रासंगिक फ़ाइल खुलती है। कुछ स्थितियों में, यह उन सभी फ़ाइलों को खोलना बेहतर हो सकता है।

इसके अलावा इन देखें:

3

भाग ए के लिए, आप here देख सकते हैं।

भाग बी के लिए आप multi-occur-in-matching-buffers पर एक नज़र है, जो आप जो बफ़र्स आप ले जाना चाहते हैं (उदाहरण के लिए सभी बफ़र्स .*.scala सभी स्केला फाइलों में देखने के लिए) और क्या के लिए (जैसे case Int =>) देखने के लिए निर्दिष्ट चलो हो सकता है। यह आपको सभी अवसरों की एक सूची देता है।

0

मुझे लगता है कि आप कृत्रिम रूप से इस सवाल का जवाब बाधित कर रहे हैं। उन घटनाओं को खोजने के लिए आपको सभी फ़ाइलों को Emacs में लोड करने की आवश्यकता नहीं है। और, एक बार जब आप regexp की घटनाओं को पा लेते हैं, तो आप आसानी से एक कीस्ट्रोक के साथ फ़ाइल में लाइन पर कूद सकते हैं।

मेरा पसंदीदा यह करने के लिए जिस तरह से, क्योंकि मैं igrep इंटरफ़ेस Emacs के grep-find से बेहतर लगता है एम एक्स igrep खोज उपयोग करने के लिए है।

आप emacswiki पर igrep पुस्तकालय पा सकते हैं: igrep.el

और उपयोग किया जाएगा

M-x igrep-find case Int => RET 

जो सभी मैचों के साथ एक बफर हो जाएगी, और उसके बाद (जैसे में पाए जाते हैं, ग्रेप खोज , संकलन, आदि) आप मैचों के माध्यम से चक्र के लिए सीएक्स ` या एमएक्स अगली-त्रुटि का उपयोग कर सकते हैं।

1

आप * केस इंट => "की सभी घटनाओं को * में ढूंढने की कोशिश कर रहे हैं।सी में स्कैला फाइलें:/src

सबसे आसान तरीका (एक डिफ़ॉल्ट Emacs सेटअप मानना) M-x rgrep का उपयोग करना है। यह आपको एक खोज-स्ट्रिंग, फ़ाइल प्रकार और निर्देशिका के लिए पूछेगा (उस क्रम में, और संकेतों को लेबल किया गया है इसलिए कोई भ्रम नहीं है)। बस case Int =>, *.scala और C:/src/xxx टाइप करें।

आपको क्या देखना चाहिए उस निर्देशिका में सभी .scala फ़ाइलों में "केस Int =>" की घटनाओं की एक सूची के साथ एक नया बफर है। यदि आप किसी घटना पर क्लिक करते हैं, तो Emacs उस फ़ाइल को खोल देगा और उस पंक्ति में नेविगेट करेगा जिसमें यह शामिल है।

एक नोट के रूप में, यदि आप खोज करने और एकाधिक फ़ाइलों में प्रतिस्थापित करने की कोशिश कर रहे हैं, तो आप dired विकल्पों का उपयोग करके ऐसा कर सकते हैं। आप उस विकल्प here पर जानकारी पा सकते हैं।

1

* प्रश्न एक के लिए ***

में Icicles, सी एक्स सी च डिफ़ॉल्ट रूप से है एक बहु आदेश। इसका मतलब है कि जब आप फ़ाइल नाम का एक सेट करने के लिए पूरा:

  • आप (जैसे यात्रा) से अधिक सुझावों, चुनिंदा पर कार्य कर सकते हैं (उदाहरण के लिए सी आरईटी, सी-माउस-2)।

  • आप पर सभी फ़ाइलों पर काम कर सकते हैं जिनके नाम आपके वर्तमान इनपुट से मेल खाते हैं - उदाहरण के लिए, उन सभी पर जाएं।

ही अन्य Icicles फ़ाइल आदेश, उन आप एक निरपेक्ष फ़ाइल नाम से मेल है, जिसका अर्थ है कि आपके minibuffer पैटर्न न सिर्फ फ़ाइल नाम लेकिन निर्देशिका की गैर-निर्देशिका भाग से मेल कर सकते हैं कि सहित के लिए सच है भागों के साथ-साथ।

उदाहरण के लिए, सी-एक्स सी-एफ एक उपसर्ग तर्क के साथ पूर्ण फ़ाइल नामों से मेल खाता है। और M-x icicle-locate-file किसी दिए गए निर्देशिका के तहत सभी फ़ाइलों के लिए एक ही चीज़ करता है।

(आप हमेशा एक साधारण आदेश के रूप में एक बहु आदेश का उपयोग कर सकते हैं: Cx सीएफ़ में कार्य करता है सामान्य रूप से अगर आप आरईटी का उपयोग या माउस -2 आप पर कार्य करने के अतिरिक्त कुंजी बाइंडिंग का उपयोग नहीं करते हैं। एक से अधिक फ़ाइलों तो आप अंतर कभी पता नहीं चलेगा।)

http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input


* देखें प्रश्न के लिए बी ***

आप क्या चाहते हैं Icicles खोज।

  • कमांड icicle-search-file आपके द्वारा निर्दिष्ट एक सेट की सभी फ़ाइलों की खोज करता है।
  • कमांड icicle-search-buffer आपके द्वारा निर्दिष्ट सेट के सभी बफर खोजता है।
  • कमांड icicle-search दोनों करता है: नकारात्मक उपसर्ग तर्क वाली फ़ाइलें, गैर-नकारात्मक उपसर्ग तर्क वाले बफर।

ये आदेश आपको खोज संदर्भों को परिभाषित करने के लिए एक regexp निर्दिष्ट करने देते हैं: उन फ़ाइलों या बफर के हिस्सों जिन्हें आप खोजना चाहते हैं। उदाहरण के लिए, .* का अर्थ है प्रत्येक पंक्ति को खोजें।

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

तो आपके द्वारा चयनित खोज हिट करने के लिए नेविगेट कर सकते हैं: सी आरईटी या सी-माउस-2 यात्रा करने के लिए, या के चक्र/आने सी नीचे का उपयोग कर। आप मिलान करने वाले उम्मीदवारों को आसानी से तुलना करने या चक्र क्रम बदलने के लिए विभिन्न तरीकों से सॉर्ट कर सकते हैं।

देखें http://www.emacswiki.org/emacs/Icicles_-_Search_Commands%2c_Overview

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