আপনি এইভাবে একটি ম্যাপিং তৈরি করতে পারেন:
noremap <Leader><C-A> :<C-U>execute 'normal!' str2nr(getreg('r')) . '<C-A>'<CR>
এটি মানচিত্রে \Control-A( <Leader>
ডিফল্ট \দেখতে, দেখতে :help leader
) রেজিস্টারে Control-Aনির্দিষ্ট সময়ের সংখ্যাটি চালানোর জন্য r
। এমনকি আপনি এটি ডিফল্টটিকে পুনরায় ফিরিয়ে দিতে Control-A( ছাড়ুন <Leader>
) ব্যবহার করতে পারেন , তবে মনে হয় এটি পরে কখনও ম্যাপিংয়ের কথা ভুলে গেলে বিভ্রান্তির কারণ হতে পারে।
যখন r
নিবন্ধটিতে রয়েছে 5
, এটি এটির মতো কাজ করে ( Control-Aএকক-উদ্ধৃত স্ট্রিং আক্ষরিক ক্ষেত্রে এটি উপস্থাপন করা অসম্ভব হওয়ায়) ডাবল-কোট স্বরলিপিতে স্যুইচ করা হয়েছে :
getreg()
এবং str2nr()
ফাংশন মূল্যায়ন করা হয়, এই প্রাক্তন কমান্ড ফলে:
:execute 'normal!' 5 . "\<C-A>"
এটি অন্য প্রাক্তন কমান্ডের ফলাফল:
:normal! "5\<C-A>"
এটি একটি সাধারণ-মোড কমান্ড কার্যকর করে:
5Control-A
কোনটি স্বাভাবিক আগে উপসর্গ গণনা ব্যবহার Control-A(অ-ম্যাপ কারণে কি !
মধ্যে :normal!
)।
এই সংস্করণটি সর্বদা r
রেজিস্টারে মান ব্যবহার করে ; এটি স্পষ্টভাবে কোনও উপসর্গযুক্ত গণনা উপেক্ষা করে (সাধারণের মতো নয় Control-A)। বিকল্প বাস্তবায়ন সম্ভব (উদাহরণস্বরূপ যেখানে একটি উপসর্গযুক্ত গণনা r
রেজিস্টারে মূল্যকে ওভাররাইড করে বা গুণিত করে ) তবে তারা কিছুটা জটিল হবে।
আপনি ম্যাপিং ব্যবহারের পরিবর্তে কমান্ডটি সরাসরি আপনার ম্যাক্রোতে রেখে দিতে পারেন:
কিউকিউ ...: 'সাধারণ চালান!' str2nr (getreg ('r'))। ' Control-A' Return…
আপনাকে প্রকৃত Control-Aএবং Returnতাদের <>
সমতুল্যের পরিবর্তে টাইপ করতে হবে কারণ এটি আর কোনও ম্যাপিংয়ের অংশ নয় যেখানে ভিম স্বয়ংক্রিয়ভাবে অনুবাদটি তৈরি করবে। এছাড়াও, Control-Uবাদ দেওয়া হয়েছে, যেহেতু এটি কেবলমাত্র প্রাথমিকের আগে সম্ভাব্য উপসর্গ গণনা থেকে রক্ষা করার জন্য ছিল :(আপনি নিজেরাই ম্যাক্রোর সামগ্রীতে এটি রক্ষা করতে পারেন)।