Vim の隣接するタブを現在のウィンドウに分割して移動する簡単な方法はありますか?
周りを見回していると、解決策を提供せずに、操作Ctrl+の逆であると誰かが言ったメーリングリストの議論にたどり着きました。WT
Vim の隣接するタブを現在のウィンドウに分割して移動する簡単な方法はありますか?
周りを見回していると、解決策を提供せずに、操作Ctrl+の逆であると誰かが言ったメーリングリストの議論にたどり着きました。WT
あなたの問題は、タブが特定のバッファに関連付けられていないことです。タブ内に同じ数のバッファーを持つウィンドウを 10 個持つことができるため、「タブを分割に移動する」ことはあまり意味がありません。
より理にかなっているのは、「バッファ x を分割して表示する」ことです。
:sb <name_of_buffer>
私は 2 つのソリューションを提供しています。第二に、私はすぐに試しています。
最初の解決策: このプラグインhttp://www.vim.org/scripts/script.php?script_id=1961をインストールするには、フォルダーを作成し~/.vim/plugin
、ファイルTabmerge.vim
をフォルダーにダウンロードするだけです。次に、2 つのタブがあり、入力すると
:Tabmerge
2 つのタブを 1 つにマージし、水平に分割してtop
整列させます。リンクをチェックして、完全な使用ガイドを見つけてください。
または、このページhttp://vim.wikia.com/wiki/Move_current_window_between_tabs
を
チェックして、現在のウィンドウをタブ間で移動する 2 つの関数のコードを確認してください。ここに関数(まだ試していません):
function MoveToPrevTab()
"there is only one window
if tabpagenr('$') == 1 && winnr('$') == 1
return
endif
"preparing new window
let l:tab_nr = tabpagenr('$')
let l:cur_buf = bufnr('%')
if tabpagenr() != 1
close!
if l:tab_nr == tabpagenr('$')
tabprev
endif
sp
else
close!
exe "0tabnew"
endif
"opening current buffer in new window
exe "b".l:cur_buf
endfunc
と
function MoveToNextTab()
"there is only one window
if tabpagenr('$') == 1 && winnr('$') == 1
return
endif
"preparing new window
let l:tab_nr = tabpagenr('$')
let l:cur_buf = bufnr('%')
if tabpagenr() < tab_nr
close!
if l:tab_nr == tabpagenr('$')
tabnext
endif
sp
else
close!
tabnew
endif
"opening current buffer in new window
exe "b".l:cur_buf
endfunc