नीचे परिभाषित दो कमांड सभी बफ़र्स को दाहिने हाथ के टैब से चालू टैब में ले जाते हैं और फिर दाहिने हाथ के टैब को बंद कर देते हैं। Mtabsp
उन्हें क्षैतिज रूप से विभाजित करके और Mtabvsp
लंबवत रूप से विभाजित करके चलता है । कमांड का उपयोग करने से पहले आपको मर्ज किए गए टैब को स्थानांतरित करने की आवश्यकता है। का उपयोग करें +tabm
, -tabm
या <n>tabm
।
सेट अप
नीचे दी गई विम स्क्रिप्ट को अपने में जोड़ें 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)
तकनीकी जानकारी
फ़ंक्शन माउंटब एक पैरामीटर प्राप्त करता है vert
। यह निर्धारित करता है कि क्या वर्तमान टैब क्षैतिज या लंबवत रूप से विभाजित है।
निम्न चरणों के साथ वांछित परिणाम प्राप्त किया जाता है:
- हम अस्थायी रूप से अगले टैब पर जाते हैं
- इसकी टैब संख्या और बफ़र्स को संदर्भित करने के लिए दो चर का उपयोग करें
- वर्तमान टैब पर लौटें
- हम टैब को विभाजित करते हैं और प्रत्येक बफर को खोलते हैं
- अंत में, हम दाहिने हाथ का टैब बंद करते हैं
यदि हमारा वर्तमान टैब अंतिम है, तो आदेशों को अनदेखा कर दिया जाता है।