Vim:ウィンドウを左/右に移動しますか?


215

Vimでは、ウィンドウを左または右に「移動」できますか?たとえば、<c-w> rまたはに似て<c-w> xいますが、上/下ではなく左/右ですか?

たとえば、次のレイアウトがある場合:

+---+---+---+
|   |   +---+
| A +---+---+
|   |   |   |
+---+---+---+

これに変えたいのですが:

+---+---+---+
|   |   +---+
+---+ A +---+
|   |   |   |
+---+---+---+

これは、を行うのが難しい/煩わしいです<c-w> {H,J,K,L}

回答:


425

Ctrl w 次の修飾子を許可する「Windowsコマンドモード」を提供します。

  • Ctrl w+ R-ウィンドウを上/左に回転します。

  • Ctrl w+ r-ウィンドウを下/右に回転します。

ナビゲーションキーで「windowsコマンドモード」を使用して、ウィンドウの位置を変更することもできます。

  • Ctrl w+ L-現在のウ​​ィンドウを「右端」に移動します

  • Ctrl w+ H-現在のウ​​ィンドウを「左端」に移動します

  • Ctrl w+ J-現在のウ​​ィンドウを「一番下」に移動します

  • Ctrl w+ K-現在のウ​​ィンドウを「最上部」に移動

チェックアウト:help window-movingの詳細については、


2
<c-w> r垂直方向にのみ回転します。
David Wolever、2010

10
@David Wolever、たとえばCtrl-W + Shift-Lのように、この場合は大文字を使用する必要があります。これはあなたが探しているものになると思います。
Ricardo Valeriano

@David-これをテストしたところ、<cw> rが水平に動作しました。
ostler.c 2013年

3
@ ostler.cは垂直分割を作成してから、列の1つ内に水平分割を作成します。ここで<cw> rを使用すると、1つの垂直分割内の2つのウィンドウのみが循環します。
Chev

1
@ nn0pいいえ、ウィンドウを移動します。<cw> hはカーソルを次のウィンドウの左に移動し、<cw> Hは現在のウィンドウを(カーソルと共に)左端に移動します。
MarSoft 2017

58

これは私にとって最も便利です(そしておそらく質問に対する正しい答えです):

  • Ctrl W+ xまたはCtrl W+ Ctrl x-現在フォーカスされているウィンドウを右に最も近いウィンドウで回転します。

ペインの中央にいて、右側のペインと入れ替えたい場合に非常に便利です。これをありがとう!
Daniel AndreiMincă2018年

8

ウィンドウ自体を移動しますか、それとも単にカーソル位置を移動しますか?

回転やサイクリングあなたはすでに述べたように、それがウィンドウ自体を移動するだけで可能ですへ次までのところ、それぞれで、左または右、上、下:

^W K
^W J
^W H
^W L

ウィンドウを1つ右に移動する組み込みのデフォルトの方法はないと思います。


1
カーソルではなくウィンドウを移動したい。
David Wolever、2010

1
次に、これはvimウィンドウコマンドで実行できる限りです。これが便利だった場合は、ソリューションとしてマークしてください:-)
Bitterzoet

2
できれば@Bitterzoetのコメントに反対票を投じます。上記の回答を参照
Nathan

1

vimは標準のキーマップではこれを行うことができないようです。ドキュメントでは、^ WK、J、H、Lコマンドは分割を作成し、現在の位置でバッファを開くことで機能するため、同じように関数を記述しました。バッファを非表示にして、左に移動し、分割してから、元のバッファを開きます:

" Rotate a window horizontally to the left
function! RotateLeft()
    let l:curbuf = bufnr('%')
    hide
    wincmd h
    split
    exe 'buf' l:curbuf
endfunc

" Rotate a window horizontally to the right
function! RotateRight()
    let l:curbuf = bufnr('%')
    hide
    wincmd l
    split
    exe 'buf' l:curbuf
endfunc

-6
  • ctrl + h カーソルを次のウィンドウに移動します(右)

  • ctrl + l カーソルを前のウィンドウに移動(左)

詳細については、以下を参照してください。 :help window-moving


3
正しくありません。Ctrl+h/lウィンドウナビゲーションの標準バインディングではありません(もちろん、それらは構成でき、一部のプラグインによって提供されます)。とにかく、これは元の質問に答えません。
MarSoft 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.