जैसा कि @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
।