পূর্বাবস্থায় ফিরে আসা ক্রমটি ম্যানুয়ালি ভাঙ্গা
আপনি ম্যানুয়ালি দিয়ে সন্নিবেশ মোডে পূর্বাবস্থায় ফিরে আসা সিকোয়েন্সটি ভাঙ্গতে পারেন <C-G>u
। থেকে সাহায্যের :
CTRL-G u break undo sequence, start new change
উদাহরণ
iHello<C-G>u world!<Esc>u
এটি আপনাকে পাঠ্যটি ছাড়বে
Hello
কমান্ড ভাঙ্গা
i " Enter Insert mode
Hello " Type 'Hello'
<C-G>u " Break the undo sequence
world! " Type ' world!'
<Esc> " Return to Normal mode
u " Undo
স্বয়ংক্রিয় সমাধান
সূক্ষ্ম-দানাদার পূর্বে স্তর নিয়ন্ত্রণ control
এখানে উইমস্ক্রিপ্টের একটি ছোট স্নিপেট রয়েছে যা <C-G>u
আপনি পাঠ্য মোছা শুরু করার সময়, এবং আপনি যখন মুছে ফেলার পরে আবার পাঠ্য প্রবেশ করা শুরু করেন তখন পূর্বে বিরতি তৈরি করতে ব্যবহার করে।
function! s:start_delete(key)
let l:result = a:key
if !s:deleting
let l:result = "\<C-G>u".l:result
endif
let s:deleting = 1
return l:result
endfunction
function! s:check_undo_break(char)
if s:deleting
let s:deleting = 0
call feedkeys("\<BS>\<C-G>u".a:char, 'n')
endif
endfunction
augroup smartundo
autocmd!
autocmd InsertEnter * let s:deleting = 0
autocmd InsertCharPre * call s:check_undo_break(v:char)
augroup END
inoremap <expr> <BS> <SID>start_delete("\<BS>")
inoremap <expr> <C-W> <SID>start_delete("\<C-W>")
inoremap <expr> <C-U> <SID>start_delete("\<C-U>")
মন্তব্য
এই জন্য কাজ করবে <BS>
, <C-W>
(ক শব্দ মুছতে), এবং <C-U>
(লাইন শুরুতে মোছা)। যদি সন্নিবেশ মোডে মুছে ফেলার আরও উপায় থাকে তবে এগুলি inoremap
শেষে অতিরিক্ত কল যুক্ত করে সমর্থন করা যেতে পারে ।
:help
ফাইলগুলিতে কিছুই খুঁজে পাচ্ছি না ... দেখুন: আমি কীভাবে আমার ভিএমআরসি ফাইলটি ডিবাগ করব? ... এছাড়াও,<C-c>
সন্নিবেশ মোডে প্রস্থান করার জন্য পার্শ্ব-প্রতিক্রিয়া থাকতে পারে (এটি দেখুন ) এবং সমস্যার অংশ হতে পারে ... আমি ব্যবহার করার পরামর্শ দিচ্ছিEsc
বা<C-[>
(এটি দেখুন )