Vimで現在のウィンドウを水平分割から垂直分割に、またその逆に切り替えるにはどうすればいいですか?
ちょっと前に偶然にそれをしました、しかし私は再び鍵を見つけることができません。
Vimメーリングリスト (読みやすくするために再フォーマットした):
two縦に分割されたウィンドウを横に分割されるように変更する
Ctrl - wtCtrl - wK
水平から垂直:
Ctrl - wtCtrl - wH
説明:
Ctrl - wt 最初(一番上)のウィンドウを現在のウィンドウにする Ctrl - wK 現在のウィンドウを一番上の全幅に移動します。 Ctrl - wH 現在のウィンドウを一番左端のフルハイトに移動する
Tは小文字で、KとHは大文字です。
また、ウィンドウが2つしかない場合は、 Ctrl - wt もう2つのウィンドウのうちの1つに既にいるのなら、それを現在のウィンドウにするポイントは何ですか?
Ctrl - w に続く H、 J、 K または L (大文字)は、通常のカーソルナビゲーションと同様に、現在のウィンドウをそれぞれ遠いleft
、bottom
、top
またはright
に移動します。
小文字の等価物は、ウィンドウを移動する代わりにフォーカスを移動します。
2つのまたはそれ以上ウィンドウが水平または垂直に開いていて、それらをall他の方向に切り替えたい場合は、次のようにします。
(水平に切り替える)
:windo wincmd K
(縦に切り替え)
:windo wincmd H
それは効果的に各ウィンドウに個別に行き、 ^WK または ^WH。
次のexコマンドは任意の数のウィンドウを(再)分割します。
:vertical ball
と入力します。:ball
と入力します。隠しバッファがある場合、これらのコマンドを発行すると、隠しバッファも表示されます。
VIMでは、以下を見て、自分がしたかもしれないことに対するさまざまな代替方法を確認してください。
:オープニングウィンドウを助ける
例えば:
Ctrl - Ws
Ctrl - Wo
Ctrl - Wv
Ctrl - Wo
Ctrl - Ws
...
Mark Rushakoffの助言 上記 に従って、これが私のマッピングです:
" vertical to horizontal ( | -> -- )
noremap <c-w>- <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\| <c-w>t<c-w>H
noremap <c-w>\ <c-w>t<c-w>H
noremap <c-w>/ <c-w>t<c-w>H
編集:使用 Ctrl - wr 2つのウィンドウがうまく並んでいない場合は入れ替えます。
水平方向から垂直方向への分割
Ctrl+W 続いてウィンドウコマンド Shift+H または Shift+L
縦横分割
Ctrl+W 続いてウィンドウコマンド Shift+K または Shift+J
どちらの解決策も、ウィンドウが2つしかない場合に適用されます。
スティーブの答えに触発されて、私は現在のタブのすべてのウィンドウのために垂直方向と水平方向の分割を切り替える単純な関数を書きました。以下の最後の行のようにマッピングにバインドできます。
function! ToggleWindowHorizontalVerticalSplit()
if !exists('t:splitType')
let t:splitType = 'vertical'
endif
if t:splitType == 'vertical' " is vertical switch to horizontal
windo wincmd K
let t:splitType = 'horizontal'
else " is horizontal switch to vertical
windo wincmd H
let t:splitType = 'vertical'
endif
endfunction
nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>