इसे करने बहुत सारे तरीके हैं।
वर्तमान निर्देशिका के अंदर
यदि आप प्रोजेक्ट ट्री में खोज / प्रतिस्थापन करना चाहते हैं, तो आप विम की तर्क सूची का उपयोग कर सकते हैं ।
बस विम खोलें और फिर :args
तर्क सूची को पॉप्युलेट करने के लिए कमांड का उपयोग करें । आप कई फ़ाइल नाम या यहां तक कि ग्लब्स में पास कर सकते हैं।
उदाहरण के लिए, :args **/*.rb
रूबी फ़ाइलों के लिए वर्तमान निर्देशिका को पुन: खोज करेगा। गौर करें कि यह भी विम को खोलने जैसा है vim **/*.rb
। आप चलकर find
वर्तमान निर्देशिका की सभी फ़ाइलों की सूची प्राप्त करने के लिए शेल के कमांड का उपयोग भी कर सकते हैं :
:args `find . -type f`
आप वर्तमान आर्ग सूची :args
को स्वयं चलाकर देख सकते हैं । यदि आप सूची से फ़ाइलों को जोड़ना या हटाना चाहते हैं, तो आप क्रमशः :argadd
या :argdelete
कमांड का उपयोग कर सकते हैं।
एक बार जब आप सूची से खुश हो जाते हैं, तो अब आप विम के शक्तिशाली :argdo
कमांड का उपयोग कर सकते हैं, जो तर्क सूची में प्रत्येक फ़ाइल के लिए एक कमांड चलाता है::argdo %s/search/replace/g
यहां खोज के लिए कुछ सुझाव दिए गए हैं (कुछ टिप्पणियों के आधार पर):
- एक शब्द सीमा का उपयोग करें यदि आप "फू" की खोज करना चाहते थे, लेकिन "फू_बार" नहीं। का प्रयोग करें
\<
और \>
तो जैसे खोज पैटर्न के आसपास निर्माणों::argdo %s/\<search\>/foobar/g
/c
यदि आप खोज शब्द की जगह लेने से पहले पुष्टि के लिए पूछना चाहते हैं तो एक खोज ध्वज का उपयोग करें ।
/e
यदि आप "पैटर्न नहीं मिला" त्रुटियों को छोड़ना चाहते हैं, तो खोज ध्वज का उपयोग करें ।
- आप खोज करने के बाद फ़ाइल को सहेजने का विकल्प भी चुन सकते हैं
:argdo %s/search/replace/g | update
:। यहां, :update
इसका उपयोग किया जाता है क्योंकि यह केवल फ़ाइल को बचाएगा यदि यह बदल गया है।
बफ़र्स खोलें
यदि आपके पास पहले से ही बफ़र्स हैं, तो आप खोज / प्रतिस्थापित करना चाहते हैं, आप उपयोग कर सकते हैं :bufdo
, जो आपकी बफर सूची ( :ls
) में हर फ़ाइल के लिए एक कमांड चलाता है ।
आदेश बहुत समान है :argdo
: :bufdo %s/search/replace/g
के समान :argdo
और :bufdo
, वहाँ है :windo
और :tabdo
वह क्रमशः खिड़कियों और टैब पर कार्य करता है। वे कम अक्सर उपयोग किए जाते हैं लेकिन अभी भी जानने के लिए उपयोगी हैं।
/c
प्रतिस्थापनों की पुष्टि के लिए ध्वज का उपयोग करना एक अच्छा विचार हो सकता है ।