আমার ভিম উইন্ডোজ অনুলিপি-পেস্ট করার জন্য আমি আমার ভিএমআরসি-তে নিম্নলিখিত কোড স্নিপেটটি লিখেছি এবং ব্যবহার করছি been
এটি নিম্নলিখিত শর্টকাটগুলির উদাহরণ হিসাবে সংজ্ঞা দেয়:
<c-w>y
: "উইন্ডোটি ইয়াঙ্কস", অর্থাৎ বর্তমান উইন্ডোতে বাফারের সংখ্যাটি একটি বৈশ্বিক চলকগুলিতে সঞ্চয় করে।
<c-w>pp
: "উইন্ডোটি বর্তমান উইন্ডোটির স্থানে রাখে", এটি পূর্বে সঞ্চিত বাফার নম্বরটি পড়ে এবং বর্তমান উইন্ডোতে সেই বাফারটি খোলে। এটি বর্তমান উইন্ডোতে ব্যবহৃত বাফারের সংখ্যাও সংরক্ষণ করে।
যদি "সেই স্থানে উইন্ডোগুলিকে অদলবদল করে", আপনি "উইন্ডো বিতে উইন্ডো এ বাফারটি খুলছেন এবং এর বিপরীতে উইন্ডোগুলির অবস্থান পরিবর্তন না করে", আপনি উইন্ডোগুলিকে অদলবদল করতে নিম্নলিখিত কীবোর্ড অনুক্রমটি ব্যবহার করতে পারেন:
- উইন্ডো এ নির্বাচন করুন (হয় মাউস দিয়ে বা কীবোর্ড কমান্ড সহ)
- টিপুন
<c-w>y
(বাফার নম্বরটি ইয়াঙ্কিং)
- উইন্ডো বি নির্বাচন করুন
- টিপুন
<c-w>pp
(বাফার আটকানো)
- উইন্ডো এ নির্বাচন করুন
- টিপুন
<c-w>pp
(আবার বাফার আটকানো)
এটি কেবল ভিম> = 7.0 এ কাজ করে।
if version >= 700
function! HOpen(dir,what_to_open)
let [type,name] = a:what_to_open
if a:dir=='left' || a:dir=='right'
vsplit
elseif a:dir=='up' || a:dir=='down'
split
end
if a:dir=='down' || a:dir=='right'
exec "normal! \<c-w>\<c-w>"
end
if type=='buffer'
exec 'buffer '.name
else
exec 'edit '.name
end
endfunction
function! HYankWindow()
let g:window = winnr()
let g:buffer = bufnr('%')
let g:bufhidden = &bufhidden
endfunction
function! HDeleteWindow()
call HYankWindow()
set bufhidden=hide
close
endfunction
function! HPasteWindow(direction)
let old_buffer = bufnr('%')
call HOpen(a:direction,['buffer',g:buffer])
let g:buffer = old_buffer
let &bufhidden = g:bufhidden
endfunction
noremap <c-w>d :call HDeleteWindow()<cr>
noremap <c-w>y :call HYankWindow()<cr>
noremap <c-w>p<up> :call HPasteWindow('up')<cr>
noremap <c-w>p<down> :call HPasteWindow('down')<cr>
noremap <c-w>p<left> :call HPasteWindow('left')<cr>
noremap <c-w>p<right> :call HPasteWindow('right')<cr>
noremap <c-w>pk :call HPasteWindow('up')<cr>
noremap <c-w>pj :call HPasteWindow('down')<cr>
noremap <c-w>ph :call HPasteWindow('left')<cr>
noremap <c-w>pl :call HPasteWindow('right')<cr>
noremap <c-w>pp :call HPasteWindow('here')<cr>
noremap <c-w>P :call HPasteWindow('here')<cr>
endif