এটি বেশ ভালভাবে কাজ করছে বলে মনে হয় এবং <C-a>
9 (95 এর 105 হয়) বা <C-x>
0 ব্যবহার করে (105 হয় 95 হয়) যখন মোটামুটি বুদ্ধিমান জিনিস হয় :
nnoremap g<C-a> :call search('\d', 'c')<CR>a <Esc>h<C-a>lxh
nnoremap g<C-x> :call search('\d', 'c')<CR>a <Esc>h<C-x>lxh
- প্রথমত, আমরা যে কোনও অঙ্ক অনুসন্ধান করি,
search()
রিসেট না করার সুবিধা রয়েছে @/
।
a <Esc>h
- সন্নিবেশ মোডে যান, অঙ্কের পরে একটি স্থান যুক্ত করুন এবং বাম দিকে যান যাতে কার্সরটি অঙ্কের শীর্ষে থাকে।
- আমরা এখন ব্যবহার করতে পারি
<C-a>
বা <C-x>
।
- আমরা
lxh
যুক্ত করা স্থান সরিয়ে দিতে আমরা ব্যবহার করি।
আমি এটিকে ম্যাপ করেছি g<C-a>
এবং g<C-x>
তাই আপনি এখনও মূলটি কল করতে পারেন।
একটি সামান্য ভিন্ন সংস্করণ যা কেবলমাত্র বর্তমান লাইনে নম্বরগুলি অনুসন্ধান করবে (তবে বর্তমান লাইনে কোনও সংখ্যা না থাকলে একটি ঝোলা জায়গা ছেড়ে দেবে):
nnoremap g<C-a> :call search('\d', 'c', line('.'))<CR>a <Esc>h<C-a>lxh
nnoremap g<C-x> :call search('\d', 'c', line('.'))<CR>a <Esc>h<C-x>lxh
এবং এখানে আরও একটি সংস্করণ যা পূর্বের মতো একই ধারণাটি ব্যবহার করে, তবে সংখ্যার আগে একটি স্থানও যুক্ত করে। এই করতে হবে g<C-a>
(নম্বর আগে কোনো munis চিহ্ন ডিফল্টরূপে উপেক্ষা <C-a>
উপর -42
ইচ্ছার 'বৃদ্ধি' এটা -41
।
এটি একটি গণনাও গ্রহণ করে, যাতে 5g<C-a>
এটি সংখ্যাটি 5 দ্বারা বৃদ্ধি করবে:
fun! Increment(dir, count)
" No number on the current line
if !search('\d', 'c', getline('.'))
return
endif
" Store cursor position
let l:save_pos = getpos('.')
" Add spaces around the number
s/\%#\d/ \0 /
call setpos('.', l:save_pos)
normal! l
" Increment or decrement the number
if a:dir == 'prev'
execute "normal! " . repeat("\<C-x>"), a:count
else
execute "normal! " . repeat("\<C-a>", a:count)
endif
" Remove the spaces
s/\v (\d{-})%#(\d) /\1\2/
" Restore cursor position
call setpos('.', l:save_pos)
endfun
nnoremap <silent> g<C-a> :<C-u>call Increment('next', v:count1)<CR>
nnoremap <silent> g<C-x> :<C-u>call Increment('prev', v:count1)<CR>
10<C-a>
10 যোগ করতে বাr2
1 টি একটি 2 দিয়ে প্রতিস্থাপন করতেও করতে পারেন