2010-12-08 11 views
10

कई बफ़र्स खुली होने पर, मैं एक regex के लिए सभी बफ़र्स खोज और खोज परिणाम नेविगेट करने के लिए एक आसान तरीका की जरूरत है (त्वरित सूची?)ढूँढें/Grep सभी छठी बफ़र्स में

मैं जानता हूँ कि मैं :bufdo आदेश कर सकते हैं, और यह %s के साथ खोजना और प्रतिस्थापित करना आसान है, लेकिन मुझे केवल एक साधारण खोज करने का कोई तरीका नहीं मिल रहा है और फिर परिणामों को नेविगेट कर सकता है।

मुझे उस के लिए प्लगइन्स मिल गए (उदा।, Buffergrep), लेकिन मुझे आश्चर्य होगा अगर यह सरल कार्य एक vim चाल के साथ मूल रूप से समर्थित नहीं है .. है ना?

+0

संभावित डुप्लिकेट [मैं विम में खुला बफ़र्स खोज करते हैं कैसे?] (Http://stackoverflow.com/questions/11975174/how-do-i-search-the- प्रलेखन पता चलता है ': खुले बफ़र्स में vim) –

उत्तर

4

:grep & co. क्विकफ़िक्स बफर को पॉप्युलेट करेगा, जो परिणामों के बीच तेज़ नेविगेशन की अनुमति देता है।

+2

आपको लगता है कि बफ़र्स और फ़ाइलों को नहीं –

+3

@Samer Abukhait में ग्रेप करने के लिए उपयोग कर सकते हैं setqflist ([]) फोन | bufdo grepadd! कुछ मामलों को संभालने के लिए कुछ अतिरिक्त काम के साथ कुछ% '। – ephemient

+0

grepadd! ऐसा लगता है कि चाल चल रही है। मुझे वांछित व्यवहार से मैप के लिए करने के लिए या निम्न प्रश्नों के उत्तर (क्या वाक्यविन्यास तत्वों रहे हैं? और/या मैं "%" के अलावा अन्य कुछ और उपयोग कर सकते हैं?) प्रलेखन पर्याप्त स्पष्ट नहीं है। लेकिन सभी मामलों में, अब मेरे पास जो कुछ भी मैं चाहता था, उसके लिए एक तरीका है, और इसके लिए मैं आपको धन्यवाद देता हूं! –

2

"मुझे इसके लिए प्लगइन्स मिले (उदा।, बफरग्रेप), लेकिन मुझे आश्चर्य होगा अगर यह सरल कार्य मूल रूप से एक विम चाल के साथ समर्थित नहीं है .. है ना?"

मुझे नहीं पता कि मुझे पता है। और इस कार्यक्षमता की पेशकश करने की कोशिश कर रहे कई प्लगइन का अस्तित्व इसकी पुष्टि करता है। । ।

आपने किस प्लगइन की कोशिश की है और उनमें क्या कमी है?

http://www.vim.org/scripts/script.php?script_id=2545 
http://www.vim.org/scripts/script.php?script_id=2255 

इसके अलावा, बस यह सुनिश्चित करने के लिए, आप vimgrep के बारे में जानते हैं, है ना? Vimgrep एक आंतरिक कमांड है जो फ़ाइलों को बफर में लोड करता है और बफर पर greps करता है, जिसके परिणामस्वरूप quickfix विंडो में परिणाम होता है। मैंने पुष्टि नहीं की है, लेकिन मुझे लगता है कि एक बफर में एक खोजी गई फाइल पहले से ही खुली है कि विमग्रेप इसे फिर से लोड नहीं करता है, कम से कम अगर इसे 'नामांकित' ध्वज सेट नहीं है। हां, तो एक तरह से त्वरित और आसान बफर grepping के लिए Vimgrep उपयोग करने के लिए हैं, बस Vimgrep के लिए एक फ़ाइल सूची से उत्पादन का उपयोग कर बनाने के लिए होगा: बफ़र्स आदेश।

3
:help grepadd से

:grepa[dd][!] [arguments] 
      Just like ":grep", but instead of making a new list of 
      errors the matches are appended to the current list. 
      Example: 
       :call setqflist([]) 
       :bufdo grepadd! something % 
      The first command makes a new error list which is 
      empty. The second command executes "grepadd" for each 
      listed buffer. Note the use of ! to avoid that 
      ":grepadd" jumps to the first error, which is not 
      allowed with |:bufdo|. 
      An example that uses the argument list and avoids 
      errors for files without matches: 
           :silent argdo try 
        \ | grepadd! something % 
        \ | catch /E480:/ 
        \ | endtry" 
की
संबंधित मुद्दे