窓をグリッド構造に戻すにはどうすればよいですか?


12

次の一連のコマンドのように、ウィンドウを4つの象限に配置している場合:

  • :tabnew
  • :vsplit
  • :split
  • <C-W>l
  • :split

次に、次のようなコマンドを入力する<C-W>Jと、これらは正方形ではなくなります。この場合、1つのウィンドウを強制的に下部にフロートさせます。

どうすれば反対のことができますか?つまり、ウィンドウを強制的に正方形のフォーメーションに戻しますか?

読ん:help window-movingだことがありますが、有用なものは見当たりませんでした。


1
<CW> Jを押したときに達成しようとしていることについて、私は少しわかりません。これにより、「現在のウィンドウが画面の全幅を使用して一番下に移動します」、つまり、ウィンドウが定義上、グリッド構成ではなくなりました。あなたは実際にあなたの窓で何をしようとしているのですか?
リッチ

3
@Rich OPは、ウィンドウをグリッド形成にリセットしたい状況を例示しているだけだと思います。
ゴンサロリベイロ

@GonçaloRibeiro正しい。
wchargin


答えではありませんが、独自のソリューションを作成するためにコード例を探している場合は、すばらしいMicrovicheプロジェクトを確認することをお勧めします。
新しいアレクサンドリア

回答:


4

私の知る限り、オープンスプリットをスプリットグリッドに配置する簡単な方法はありません。この場合、グリッドに戻る最も簡単な方法は、構造を手動で修正することです。

  1. 上部のフローティングスプリットを閉じます
  2. 画面の半分を占める分割に戻ります
  3. でそれを再分割 :split <file>

これにより、グリッドに戻ります。ウィンドウレイアウトに影響を与えずに分割を操作する方法は、[count] Ctrl - を使用することですW x 。これは、現在のウィンドウを[count]ウィンドウと交換します。


私はこれを行うことができることを知っていますが、いくつかの欠点があります。(1)ウィンドウが特定のバッファの唯一のビューであり、バッファが汚れている場合は、:wqまたはにする必要がありますが:q!、どちらも望ましくありません。(2)これにより、カーソル位置などのウィンドウ固有の設定がリセットされます。(3)これにより、進行中の差分が壊れます。基本的に、窓は一流の市民です。それらを破壊して新しいものを作成するだけでは不十分です。
-wchargin

@WChargin vimを隠しバッファーを許可するように設定すると、その一部はなくなります。しかしええ
...-デロバート

2
ウィンドウを閉じてバッファを目的の場所に分割する代わりに、新しいウィンドウを移動したい場所で分割し、移動したいウィンドウと交換してから、(移動した)新しいウィンドウを閉じます。
-tommcdo

4

このwinsaveviewコマンドを使用して、お気に入りのレイアウトを保存できます。ここでは\sv、便宜上マッピングしています:

nnoremap <Leader>sv :let g:myLayout = winsaveview()<CR>

レイアウトを壊す前に必ず実行してください!;-)

誤ってレイアウトを壊してしまった場合は、復元できます。

nnoremap <Leader>rv :call winrestview(g:myLayout)<CR>

4

ウィンドウを再配置するデフォルトのキーは、ローカルのスプリットグループ内でのみ機能します。

CTRL-W x   Exchange current window with next (in group)
CTRL-W r   Rotate windows down/right (in group)

または、ウィンドウをトップグループに分割します。

CTRL-W  H | J | K | L   Move window to left/top/bottom/right-most edge

バッファを他の分割グループの1つに移動する場合、これらは不十分です。

しかし、そのような場合には、WindowSwapプラグインが役立ちます。任意の2つのウィンドウのバッファを交換できます。

<leader> yw   "Yank window": Yank the current window

<leader> pw   "Paste window": Swap the current window with the yanked window
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.