@ ইমু মন্তব্যে যেমন উল্লেখ করেছেন , আপনি একটি সমতুল্য শ্রেণি ব্যবহার করতে পারেন (বর্ণিত :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
।