आप विम का उपयोग कर रहे हैं। आपको इसे बनाने के लिए एक टूल मिला है।
जाहिर है, वहाँ सात जवाब पहले से ही उपयोग करने के लिए कह रहे हैं grep। लेकिन मैं इस तरह का एकमात्र व्यक्ति प्रतीत होता हूं जिसने अब तक आपके प्रश्न पर ध्यान दिया है जो आप उपयोग कर रहे हैं vim। जैसे, यद्यपि आप भीतर से उपयोग कर सकते हैं , आप अंतर्निहित टूल का उपयोग भी कर सकते हैं । यह कमांड के माध्यम से लगाया जाता है । grepvimvim:vimgrep
फ़ंक्शन के कॉल के लिए वर्तमान निर्देशिका में सभी सी स्रोत फ़ाइलों को खोजने के लिए toUpperCase()"एक प्रकार का vimकमांड
:vimgrep "\<toUpperCase\_s*(" *.c
मैचों की परिणामी सूची स्वचालित रूप से क्विकफ़िक्स सूची में लोड हो जाती है, दोनों में से किसी के साथ सुलभ (सूक्ष्म अंतर के लिए ऑन-लाइन मदद देखें)
:copen
:cwin
फ़ंक्शन की परिभाषा को खोजने के लिए , इसके बजाय कॉल करने के लिए, ctagsउपकरण है, जैसा कि Gillesउत्तर में , :tjumpया :tselectआदेशों के साथ संयोजन में वर्णित है ।
क्यों उपयोग करें :vimgrep?
ऑन-लाइन मदद ( :help grep) कई कारणों को बताती है, जो मैं यहां तोता नहीं करूंगा। इसके अलावा उन लोगों के लिए, की कार्रवाई की तुलना :vimgrepके साथ dietbuddhaके जवाब । dietbuddhaकमांड लाइन grepप्रत्येक व्यक्ति सी स्रोत फ़ाइल के लिए एक व्यक्तिगत प्रक्रिया की मांग करता है । यह xargsउस ओवरहेड को कम करने के लिए भी काम नहीं करता है । और आपको अभी भी किसी भी तरह से अपने पाठ संपादक को प्रासंगिक स्रोत फ़ाइलों पर समाप्त करने के लिए आउटपुट को पार्स करना होगा, जब यह समाप्त हो जाए। :vimgrepकई अतिरिक्त प्रक्रियाओं को बिल्कुल भी कांटा नहीं करता है, और परिणाम का उपयोग करना सरलता ही है। परिणामी क्विकफ़िक्स सूची में प्रविष्टियों में से किसी एक का चयन करना, स्वचालित रूप से संबंधित स्रोत फ़ाइल की प्रासंगिक पंक्ति पर कर्सर को स्थित करता है।
वास्तव में, यह वही करता है जो आपने लिखा था आप हाथ से करेंगे, स्वचालित रूप से छोड़कर। यह उन बहुत ही पाठ संपादक कार्यों को करने का स्वचालित तरीका है। यह फ़ाइल को ऐसे लोड करता है जैसे कि हाथ से लोड किया गया है, इसे एक नियमित अभिव्यक्ति के लिए खोजता है ( उसी नियमित अभिव्यक्ति सिंटैक्स का उपयोग करना जो आप पहले से कहीं और उपयोग कर रहे हैं vim), उन स्थानों को रिकॉर्ड करता है जहां मैच होते हैं, और फिर फ़ाइल को अनलोड करता है।