Vimでバッファーごとにタブページを開くみたいなヌルい使い方をしているみなさんこん○○は。タブページを適当に開きまくるとたまに整理してやらないとごちゃごちゃになるので、簡単に位置を変えられないかなーとタブページのヘルプをちゃんと読んだら:tabmove
というまんまなコマンドでできることがわかった。
ただ:tabmove
は引数として正の整数しか受け取れないので、-1
で左に動かすとかそういう相対的な移動はできない。1
で1つ右に、-1
で1つ左にループして動かせるようなラッパー関数を書いて使うことにした。
" Move tabpage
function! s:MoveTabpage(num)
if type(a:num) != type(0)
return
endif
let pos = tabpagenr() - 1 + a:num
let tabcount = tabpagenr("$")
if pos < 0
let pos = tabcount - 1
elseif pos >= tabcount
let pos = 0
endif
execute "tabmove " . pos
endfunction
" TabMove: Move tabpage with reltive number
command! -nargs=1 TabMove :call <SID>MoveTabpage(<f-args>)
nnoremap <C-S-Right> :call <SID>MoveTabpage(1)<Return>
nnoremap <C-S-Left> :call <SID>MoveTabpage(-1)<Return>
そんなに使うわけではないけど悪くはなさそう。