2010-02-03 2 views
26

एक आम प्रोग्रामिंग काम है:विम में फ़ाइलों की निर्देशिका में कैसे खोजें? vim में मेरे लिए

:s/some pattern/ 

कुछ काम

n # अगली प्रविष्टि

n # अगली प्रविष्टि पाता है कुछ काम करना पाता करना ..

अब, s/.... केवल खोज वर्तमान फाइल में।

क्या ऐसा कोई तरीका है जो मैं कर सकता हूं, लेकिन निर्देशिका फ़ाइलों में खोजें? pwd के उपनिर्देशिकाओं में सभी फ़ाइलों पर "s/p/" कहें जो में समाप्त होता है। .cpp?

धन्यवाद!

+0

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

उत्तर

26

आप बस :grep command का उपयोग कर सकते हैं: या खोज उपकरण के एक और पूर्ण एकीकरण के लिए, grep.vim extension का उपयोग करें।

विम में बॉक्स के बाहर उपलब्ध चीज़ों का एक अच्छा प्रलेखन प्राप्त करने के लिए बस :help grep टाइप करें। :grep foo *.?pp का उपयोग करके आप जो चाहते हैं उसे करना चाहिए। यह QuickFix list खुल जाएगा, जैसा कि आप :make का उपयोग करके प्राप्त करते हैं, जो पाए गए घटनाओं पर कूदने में सक्षम बनाता है।

3
:help windo 
:help bufdo 
man find 
man xargs 

find ./start/point -iname "*.cpp" -print0 | xargs -0 vim 
:bufdo s/baar/foo/gc 
:wall 
:qall 

जीसी "वैश्विक पुष्टि", दीवार (सभी लिखें), qall (काफी सब)। फ़ाइल सूची देखने के लिए: अगली फ़ाइल पर शीर्ष पर कूदें: wn (अगला लिखें) या: बीएन (बफर अगला)। वैसे, xargs स्मृति में फाइल के बड़े हिस्से का प्रबंधन करने के लिए स्मृति के साथ वितरित करने के लिए।

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