मामला बदले बिना एक स्ट्रिंग बदलें?


18

जिस डोमेन-विशिष्ट भाषा के साथ मैं काम कर रहा हूं, उसमें एक विचित्रता के कारण, मैं अक्सर (चुनिंदा, विश्व स्तर पर नहीं) के कार्य का सामना करता हूं , क्रमशः या termउसके TERMसाथ ।wordWORD

इसका मतलब है, मैं केस-असंवेदनशील के लिए खोज करता हूं term, और word मूल termबरकरार के अपरकेस / लोअरकेस को रखने के साथ इसे बदलना चाहता हूं ।

की पूरी जाँच के बाद termके लिए लगातार ऊपरी / लोअर केस मुश्किल होगा और वास्तव में आवश्यक नहीं है, मैं अपरकेस के लिए समझौता होगा / के लोअरकेस word/ WORDके पहले अक्षर पर फैसला किया जा रहा है term

मैं इसे कैसे हासिल कर सकता हूं?


2
उन लोगों के लिए "चुनिंदा" के बारे में ध्यान दें जो इसे नहीं जानते हैं: बस cनीचे दिए गए प्रतिस्थापन बयानों के अंत में जोड़ें , और विम आपको हर एक मैच के बारे में पूछेगा।
DevSolar

जवाबों:


16

माइकल्स Geddes 'प्लगइन कीपकेस में आपकी जरूरत है:

:%SubstituteCase/\cterm/word/g

अन्य सिंटैक्स तत्वों :substituteका भी समर्थन किया जाता है।


5
शानदार ... यह मेरे लिए चीजों को काफी गति देगा । मैं यह भी देखता हूं कि मैं अब यह नहीं पूछ सकता कि " क्या यह किया जा सकता है", लेकिन केवल " यह कैसे करना है"। लगता है मैं अंत में विम पर "आ गया" हूँ। :-D
DevSolar

16

इसे एब्सोल्ट प्लगइन:Subvert से नियंत्रित किया जा सकता है :

एक बार मेरे पास "सुविधा" नामक एक डोमेन मॉडल के साथ एक आवेदन था, जिसे "भवन" का नाम बदलने की आवश्यकता थी। तो, एक सरल खोज और बदलें, है ना?

:%s/facility/building/g

ओह, लेकिन केस वेरिएंट!

:%s/Facility/Building/g
:%s/FACILITY/BUILDING/g

रुको, बहुवचन "s" से अधिक है, इसलिए हमें वह भी प्राप्त करने की आवश्यकता है!

:%s/facilities/buildings/g
:%s/Facilities/Buildings/g
:%s/FACILITIES/BUILDINGS/g

अबोल.विम आपकी पीठ है। एक आदेश सभी छह करने के लिए, और आप इसे भी & के साथ दोहरा सकते हैं!

:%Subvert/facilit{y,ies}/building{,s}/g

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