हेल्म और / या प्रोजेक्टाइल के साथ निर्देशिका में पुनरावर्ती grep?


11

एक निर्देशिका में एक पुनरावर्ती grep सबसे सरल बात होनी चाहिए, लेकिन मुझे इसे अभी तक काम करने के लिए नुस्खा नहीं मिला है। मैं निम्नलिखित आदेशों के बीच में संघर्ष कर रहा हूं और यह सुनिश्चित नहीं कर रहा हूं कि इसके भीतर कौन सी कार्यक्षमता दबी हुई है:

  • helm-find-files: समस्या यह है कि यह वास्तव में एक निर्देशिका को पुन: प्राप्त करने में बहुत बुरा है।
  • projectile-find-dir: यह डायर खोजने में बहुत अच्छा है! हालाँकि, हेल्म कम्पलीट का उपयोग करने के बावजूद आप हेल्म मोड में हवा नहीं करते हैं, इसलिए C-u C-sकमांड यहाँ काम नहीं करता है।
  • helm-find: पुनरावृत्ति सही हो जाता है, लेकिन फ़ाइलों को लक्षित करता है, निर्देशिकाओं को नहीं
  • helm-projectile-find-dir: लगता है कि मैं क्या चाहता हूँ।

1
मुझे लगता है कि उसके लिए ag और ag-mode पसंद है, सिल्वर खोजकर्ता एक हाथ से अपनी पीठ से बंधा हुआ
बीआरपी बनाता है

एमएक्स प्रक्षेप्य-एजी हो सकता है? («प्रक्षेप्य-उपसर्ग» A या «प्रक्षेप्य-उपसर्ग» - a (संस्करण पर निर्भर करता है)
Mekk

2
मूल पोस्टर के लिए: मैं काफी नहीं समझता कि आपका उद्देश्य क्या है। प्रक्षेप्य- ack और प्रक्षेप्य- ag दोनों महान पुनरावर्ती greps हैं (संपूर्ण) प्रक्षेप्य परियोजना। क्या उन्हें आपकी जरूरत नहीं है?
मेकक

जवाबों:


10

आपके पास दो तरीके हैं:

  • उपयोग helm-projectile-grep/ack/ag: आप प्रोजेक्ट रूट से शुरू होने वाली हर चीज की खोज कर सकते हैं। बाद में यदि आप खोज परिणामों को सहेजना चाहते हैं, तो कार्रवाई मेनू पर स्विच करने के लिए दबाएं F3या दबाएं TABऔर 3 क्रिया का चयन करें। hgrepबफर नेविगेट करने के लिए :

    • C-<down>: अगले मैच में जाएं और मैच खोलें।
    • C-<up>: पिछले मैच में जाएं और मैच खोलें।
    • M-<down>: मैच को खोले बिना अगले मैच में जाएं।
    • M-<up>: मैच को खोले बिना अगले मैच में जाएं।
    • C-o: अन्य विंडो में करंट मैच खोलें।
    • RET: वर्तमान विंडो में वर्तमान मैच खोलें।
  • उपयोग करें helm-projectile-find-dir( helmउपसर्ग पर ध्यान दें ; आपको helm-projectileसामान्य रूप से पैकेज से उचित हेल्म कमांड का उपयोग करना होगा ): एक वांछित निर्देशिका के लिए संकीर्ण और C-u C-sउस निर्देशिका में पुनरावर्ती खोज करने के लिए दबाएं । यदि आप नहीं दबाते हैं C-u, तो यह बिना गहराई में जाए बस उस निर्देशिका में खोज करता है।

उम्मीद है की वो मदद करदे।


1
आपने मुझे प्रोजेक्टाइल खोज परिणाम के भीतर इस "TAB" कार्रवाई के बारे में सूचित करके बहुत बड़ा लाभ प्राप्त करने में सक्षम बनाया है। धन्यवाद। धन्यवाद महोदय।
एमिश करें

5

एक निर्देशिका में एक पुनरावर्ती grep सबसे सरल बात होनी चाहिए

वर्तमान निर्देशिका के अंदर एक साधारण पुनरावर्ती grep के लिए, बस: M-x grepफिर, मिनीबफ़र के अंदर Run grep (like this): grep -nHr "pattern":। (नोटिस -r फ्लैग)।

आप भी रुचि हो सकती है rgrep:

rgrep
`grep.el’ में एक इंटरैक्टिव ऑटोलैड संकलित लिस्प फ़ंक्शन है ।

(rgrep REGEXP और वैकल्पिक फ़ाइलें DIR CONFIRM)

निर्देशिका में वृक्षों में REGEXP के लिए पुन: प्राप्त grep डीआईआर में निहित है। खोज फ़ाइल नाम से मेल खाने वाले शेल पैटर्न FILES तक सीमित है। FILES grep-files-aliases', e.g. enteringch ' में परिभाषित संक्षिप्तीकरण का उपयोग कर सकता है' * [ch] के बराबर।


यह प्रक्षेप्य से जुड़ा नहीं है जो इसे संदर्भ में होना चाहिए।
रिचीएचएच

2

अन्य उत्तरों में वर्णित उपकरणों के अलावा, एक और शांत फ़ंक्शन है find-grep-diredजो एक diredबफर बनाता है जिसमें एक पुनरावर्ती grep पैटर्न से मेल खाती सभी फाइलें हैं।

यह सिर्फ find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -lsएक diredबफर में परिणाम चलाता है और प्रदर्शित करता है ।


1

आप कोशिश कर सकते हैं helm-do-grep। इसे एक उपसर्ग arg के साथ कॉल करना आपको एक पुनरावर्ती grep देता है, जैसा कि हेल्म विकी में बताया गया है ।

यदि आप हेलम-डू-जीआरईपी को बिना हेल्म-फाइंड-फाइल्स को शुरू किए बिना लॉन्च करना चाहते हैं, तो करें:

Cu हेलम-कमांड-उपसर्ग-कुंजी Mg s

नोट: यदि आप Mg s से पहले Cu को हिट करना भूल जाते हैं तो आप इसे फ़ाइल चयन के बाद कर सकते हैं।

आपको खोज करने के लिए फ़ाइलों की किस श्रेणी में चयन करने के लिए प्रेरित किया जाएगा: wilcard सिंटैक्स का उपयोग करें। *। उदाहरण के लिए (केवल .el फ़ाइलों में खोज)।

डिफ़ॉल्ट रूप से, फ़ाइल का विस्तार उस बिंदु पर किया जाता है जब कर्सर फ़ाइल नाम पर होता है। यदि कर्सर किसी निर्देशिका के मूल में है, तो निर्देशिका में पाए गए सभी फ़ाइल नाम एक्सटेंशन और मिलान नहीं करने वाले grep-find-ign-files को प्रॉम्प्ट में डाला जाता है।

इसे ऐसे आज़माएँ:

C-u helm-command-prefix-key M-g s


0

helm-projectile-find-dirशायद उचित कार्यक्षमता है। आप ऐसा कर सकते हैं

  1. के रूप में एक निर्देशिका का पता लगाएं projectile-find-dir
  2. लेकिन फिर आप हेल्म मोड में समाप्त करते हैं जहां आप C-u C-sवांछित के रूप में पुनरावर्ती खोज के लिए दौड़ सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.