উত্তর:
:tabm
আপেক্ষিক বা শূন্য-সূচক পরম যুক্তি ব্যবহার করে আপনি কোনও ট্যাব স্থানান্তর করতে পারেন ।
চূড়ান্ত:
:tabm i
আপেক্ষিক:
:tabm +i
:tabm -i
এটি তুলনামূলকভাবে নতুন বৈশিষ্ট্য। সুতরাং যদি এটি কাজ না করে তবে আপনার ভিএম আপডেট করার চেষ্টা করুন।
:tabm
ভিএম .3.৩ এ আপেক্ষিক যুক্তি গ্রহণ করে।
আপনি কি বর্তমান ট্যাবটি সরানো মানে? এটি ট্যাবমোভ ব্যবহার করে কাজ করে।
:tabm[ove] [N] *:tabm* *:tabmove*
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab
page is made the last one.
আমার কাছে দুটি কী বাইন্ডিং রয়েছে যা আমার বর্তমান ট্যাবটি বামে বা একটি ডানে সরিয়ে নিয়েছে। খুব সহজ!
সম্পাদনা: এখানে আমার ভিআইএম ম্যাক্রো। আমি কোনও বড় ভিএম কোডার নই , তাই সম্ভবত এটি আরও ভাল করা যেতে পারে তবে এটি আমার পক্ষে কাজ করে:
" Move current tab into the specified direction.
"
" @param direction -1 for left, 1 for right.
function! TabMove(direction)
" get number of tab pages.
let ntp=tabpagenr("$")
" move tab, if necessary.
if ntp > 1
" get number of current tab page.
let ctpn=tabpagenr()
" move left.
if a:direction < 0
let index=((ctpn-1+ntp-1)%ntp)
else
let index=(ctpn%ntp)
endif
" move tab page.
execute "tabmove ".index
endif
endfunction
এর পরে আপনি কীগুলি বাঁধতে পারেন, উদাহরণস্বরূপ আপনার এ .vimrc
:
map <F9> :call TabMove(-1)<CR>
map <F10> :call TabMove(1)<CR>
এখন আপনি F9 বা F10 টিপে আপনার বর্তমান ট্যাবটি সরাতে পারেন।
আমি একই সন্ধান করছিলাম এবং কিছু পোস্টের পরে আমি একটি ফাংশনের চেয়ে সহজ উপায় খুঁজে পেয়েছি:
:execute "tabmove" tabpagenr() # Move the tab to the right
:execute "tabmove" tabpagenr() - 2 # Move the tab to the left
Tabpagenr () প্রকৃত ট্যাব অবস্থান ফেরৎ, এবং tabmove ইনডেক্স ব্যবহার করে।
আমি ডানদিকে Ctrl + L এবং বামটি Ctrl + H তে ম্যাপ করেছি:
map <C-H> :execute "tabmove" tabpagenr() - 2 <CR>
map <C-J> :execute "tabmove" tabpagenr() <CR>
:execute "tabmove" tabpagenr() + 1 <CR>
ডানদিকে যাওয়ার জন্য আমাকে ব্যবহার করতে হয়েছিল। জন্য MacVim 8.0.1420 (144) ।
:tabm n
n
অবস্থানটি চিহ্নিত করার জন্য একটি সংখ্যা কোথায় রয়েছে (শূন্য থেকে শুরু করে)
আমি মনে করি যে আরও ভাল সমাধান হ'ল ট্যাবটি আপনি যে নতুন অবস্থানে চান সেটির সংখ্যাসূচক মান বের করার পরিবর্তে বাম বা ডানটিকে বর্তমান অবস্থানে নিয়ে যাওয়া।
noremap <A-Left> :-tabmove<cr>
noremap <A-Right> :+tabmove<cr>
উপরের কীম্যাপস দিয়ে আপনি বর্তমান ট্যাবটি সরাতে সক্ষম হবেন:
অন্যান্য উত্তরের সূক্ষ্ম পরামর্শ ছাড়াও, আপনি যদি মাউস সমর্থন সক্ষম করে থাকেন তবে আপনি কেবল তা সরাতে মাউসের সাহায্যে ট্যাবগুলি টেনে আনতে পারেন।
এটি GUI উইজেট ট্যাব বা GUI মোডে টার্মিনাল স্টাইল ট্যাব ব্যবহার করেই হোক না কেন ম্যাকভিম এবং অন্যান্য জিইউআই ভিআইএম বাস্তবায়নে ডিফল্টরূপে।
এটি খাঁটি tty মোড ভিমেও কাজ করে, যদি আপনার কাছে set mouse=a
একটি উপযুক্ত টার্মিনাল থাকে (একটি এক্সটার্ম এবং এর বেশিরভাগ অনুকরণকারী, যেমন জিনোম-টার্মিনাল, টার্মিনাল.এপ, আইটিার্ম 2, এবং পিটিটিওয়াই / কিটিটিওয়াই), একটি দৃশ্যের নাম দেওয়ার জন্য। দ্রষ্টব্য যে 222 কলামের বাইরেও মাউস ক্লিকগুলি প্রয়োজন set ttymouse=sgr
; দেখতে সালে তেজ, কেন আমার মাউস গত 220th কলাম কাজ করে? যে পটভূমি জন্য।
আমি ভিআইএম-ট্যাবার নামে একটি প্লাগইন লিখেছি যা চারপাশে ট্যাবগুলিকে অদলবদল করতে, সেগুলি স্থানান্তর করতে এবং অন্তর্নির্মিত ট্যাব ম্যানিপুলেশন কমান্ডগুলির সক্ষমতা যোগ করার জন্য বিল্টইনগুলির সাথে বেশিরভাগ ক্ষেত্রে সামঞ্জস্য রেখে কিছু অতিরিক্ত কার্যকারিতা সরবরাহ করে। এমনকি আপনি প্লাগইনটি ব্যবহার না করা চয়ন করলেও, README এ কিছু সাধারণ ট্যাব ব্যবহারের তথ্য রয়েছে।
কোনও কারণে, ফাংশন উত্তরটি আমার পক্ষে কাজ করা বন্ধ করে দিয়েছে। আমি vim-ctrlspace সঙ্গে একটি বিরোধ সন্দেহ । নির্বিশেষে, ফাংশন উত্তরের গণিতটি অপ্রয়োজনীয়, কারণ ভিমটি ফাংশনে অন্তর্নির্মিত ট্যাবগুলি বাম এবং ডান স্থানান্তর করতে পারে। আমাদের কেবল মোড়ানোর কেসটি পরিচালনা করতে হবে , কারণ ভিম ব্যবহারকারী বান্ধব নয়।
" Move current tab into the specified direction.
"
" @param direction -1 for left, 1 for right.
function! TabMove(direction)
let s:current_tab=tabpagenr()
let s:total_tabs = tabpagenr("$")
" Wrap to end
if s:current_tab == 1 && a:direction == -1
tabmove
" Wrap to start
elseif s:current_tab == s:total_tabs && a:direction == 1
tabmove 0
" Normal move
else
execute (a:direction > 0 ? "+" : "-") . "tabmove"
endif
echo "Moved to tab " . tabpagenr() . " (previosuly " . s:current_tab . ")"
endfunction
" Move tab left or right using Command-Shift-H or L
map <D-H> :call TabMove(-1)<CR>
map <D-L> :call TabMove(1)<CR>
-tabm
এবং +tabm
আমার তেজ 7.4 সঠিকভাবে ট্যাব সরাতে পারবেন না। এছাড়াও আমার :help tabm
এটিকে বৈধ বাক্য গঠন হিসাবে তালিকাভুক্ত করে না। তাই আমি গত প্রতিস্থাপিত else execute ...endif
সঙ্গে elseif a:direction == 1 execute "tabmove" s:current_tab else execute "tabmove" s:current_tab - 2 endif
ব্যবহার পাবলো এর উত্তর
tabmove
এবং -
/ লাইনের +
সাইনটি উল্টিয়ে দিয়েছে execute
।
@ মায়বাবেশিলের উত্তর থেকে আপেক্ষিক যুক্তি ব্যবহার করে আমার ম্যাক্রোটি এখানে:
" Shortcuts to move between tabs with Ctrl+Shift+Left/Right
function TabLeft()
if tabpagenr() == 1
execute "tabm"
else
execute "tabm -1"
endif
endfunction
function TabRight()
if tabpagenr() == tabpagenr('$')
execute "tabm" 0
else
execute "tabm +1"
endif
endfunction
map <silent><C-S-Right> :execute TabRight()<CR>
map <silent><C-S-Left> :execute TabLeft()<CR>
এটি মোড়ানো ক্ষেত্রে পরিচালনা করে।