जैसा कि @muru ने टिप्पणी में उल्लेख किया है , आप एक समतुल्यता वर्ग (वर्णित :help /[[) का उपयोग कर सकते हैं जो ऐसा प्रतीत होता है कि समान वर्णों के समूह के रूप में मूल्यांकन किया गया वर्ण वर्ग अभिव्यक्ति है (अर्थात एक बार जब आप किसी उच्चारण / विशेषण को हटा देते हैं)।
उदाहरण के लिए, देखने के लिए kočičkaऔर kocickaएक ही पैटर्न के साथ, तो आप इस इस्तेमाल कर सकते हैं:
ko[[=c=]]i[[=c=]]ka
जहां वर्ण के [[=c=]]लिए समतुल्य वर्ग है c।
cखोज करते समय जब भी आप हिट करते हैं, तो आप इस मैपिंग का उपयोग कर सकते हैं:
cnoremap <expr> c getcmdtype() =~ '[?/]' ? '[[=c=]]' : 'c'
जिसे इस तरह तोड़ा जा सकता है:
<expr> एक अभिव्यक्ति का मूल्यांकन टाइप करें
getcmdtype() =~ '[?/]' परीक्षण करें कि आप एक पिछड़ी या आगे की खोज लिख रहे हैं या नहीं
'[[=c=]]'cपिछले परीक्षण के सफल होने पर चरित्र के लिए समतुल्य वर्ग लौटाएं
'c'cअन्यथा चरित्र वापस करें
पिछली मैपिंग में 2 कमियां हैं:
- यह केवल
cचरित्र को कवर करता है
- यह पैटर्न को पढ़ना मुश्किल बना सकता है
इसे <CR>इस तरह रीमैप करके बेहतर बनाया जा सकता है :
cnoremap <CR> <C-\>e getcmdtype() =~ '[?/]' ? substitute(getcmdline(), '\a', '[[=\0=]]', 'g'): getcmdline()<CR><CR>
जब आप <CR>खोज के लिए एक पैटर्न लिखने के बाद हिट करते हैं, तो मैपिंग स्वचालित रूप से सभी वर्णमाला वर्णों को उनके समकक्ष वर्ग समकक्ष द्वारा बदल देगा।
इसके लिए मैपिंग <CR>पिछले मैपिंग के समान है c, सिवाय इसके कि यह तर्क का उपयोग नहीं करता है, <expr>लेकिन सिस्टम मैपिंग का <C-\>e।
<expr>आपको अभिव्यक्ति का मूल्यांकन सम्मिलित करने की <C-\>eअनुमति देता है , जबकि आप अभिव्यक्ति के मूल्यांकन के साथ पूरी कमांड लाइन को बदलने की अनुमति देता है।
:h [[=और:h patterns-composing।