คำสั่งสองคำสั่งที่กำหนดไว้ด้านล่างจะย้ายบัฟเฟอร์ทั้งหมดจากแท็บขวาไปยังแท็บปัจจุบันแล้วปิดแท็บขวา Mtabsp
ย้ายพวกมันโดยการแยกในแนวนอนและMtabvsp
แยกในแนวตั้ง คุณต้องย้ายแท็บที่ถูกผสานก่อนที่จะใช้คำสั่ง การใช้งาน+tabm
, หรือ-tabm
<n>tabm
ติดตั้ง
เพิ่ม vim script ด้านล่างของคุณvimrc
:
function! Mtab(vert)
if tabpagenr() == tabpagenr("$")
return 0
endif
+tabnext
let s:killed_tab = tabpagenr()
let s:buf_list = tabpagebuflist()
-tabnext
for item in s:buf_list
if a:vert
vsp
else
sp
endif
execute "buf " . item
endfor
execute "tabclose " . s:killed_tab
endfunction
command! Mtabsp call Mtab(0)
command! Mtabvsp call Mtab(1)
รายละเอียดทางเทคนิค
ฟังก์ชั่น mtab vert
รับพารามิเตอร์หนึ่ง มันจะกำหนดว่าแท็บปัจจุบันถูกแยกในแนวนอนหรือแนวตั้ง
ผลลัพธ์ที่ต้องการสามารถทำได้ด้วยขั้นตอนต่อไปนี้:
- เราย้ายไปที่แท็บถัดไปชั่วคราว
- ใช้ตัวแปรสองตัวเพื่ออ้างอิงหมายเลขแท็บและบัฟเฟอร์
- กลับไปที่แท็บปัจจุบัน
- เราแบ่งแท็บและเปิดแต่ละบัฟเฟอร์
- สุดท้ายเราปิดแท็บขวา
หากแท็บปัจจุบันของเราเป็นที่สุดคำสั่งจะถูกละเว้น