現在のスプリットの幅と高さを変更するにはどうすればよいですか?


111

スプリット(^ w + v、^ w + sを使用)バッファーに取り組んでいますが、現在のスプリットの幅を広げたり、高さを変更したいことがあります。どうすればそれを達成できますか?

回答:


158

これを行うことができるいくつかのウィンドウコマンドがあります。

  • Ctrl+W +/-:高さの増減(例20<C-w>+
  • Ctrl+W >/<:幅の増減(例30<C-w><
  • Ctrl+W _:高さの設定(例50<C-w>_
  • Ctrl+W |:幅の設定(例50<C-w>|
  • Ctrl+W =:すべてのウィンドウの幅と高さを等しくする

こちらもご覧ください: :help CTRL-W


19
また、最初の2つのオプションは、一度に複数の行/列のサイズを変更するためにカウントを取ることができることに注意してください。
リッチ

4
また、3番目と4番目のオプションは、最大の高さ/幅にサイズを変更するために数えられないことに注意してください。
マイケル

2
私のシステムでは、それはだ:help CTRL-Wとない:help CTRL_W
Alexejマグラ

Windows、Cygwin、vimの場合vimdiff -o bigfile1.bash bigfile2.bashctrl-w =when::は3番目のMiniBufExplorerウィンドウを一番上に開き(3つのウィンドウのサイズは同じになります)、そのウィンドウを閉じると、最初の.bashファイルのウィンドウ2が2番目の.bashファイルより大きくなります窓。2つの.vimファイルで同じ操作を行うと、同じ結果が得られます。:(同じvim -o
オリビエデュラック

最初の2つのオプションのショートカットを尋ねる vi.stackexchange.com/questions/16786/...
KcFnMi

43

次のresizeコマンドも使用できます。

  • :resize [+-]N -水平分割のサイズを変更し、高さをN文字増やしたり減らしたりします。
  • :vertical resize [+-]N -垂直分割のサイズを変更し、高さをN文字増やしたり減らしたりします。
  • :resize N -高さをN文字に設定して、水平分割のサイズを変更します。
  • :vertical resize N -垂直分割のサイズを変更し、幅をN文字に設定します。

これらはCtrlwコマンドと同等です。をご覧ください:help window-resize



29

これは、私がvimのマウスモードを使用したい数少ない理由の1つです。

GUIバージョンを使用している場合、または端末がドラッグイベント(xtermやrxvt-unicodeなど)の送信をサポートしている場合は、ctrlを使用して多くの推測作業をせずに、分割線をクリックしてドラッグしてウィンドウを希望する場所に正確にサイズ変更できます-w plus、minus、less、greaterの組み合わせ。

ターミナルバージョンでは、これを機能させるためにマウスモードを適切に設定する必要があります

:set mouse=n

(「n」を使用していますが、「a」も機能します)

そして、あなたはttyマウスタイプを設定する必要があります

:set ttymouse=xterm2

多くの人は、マウスを使用すると多くの時間が無駄になると言います(主にキーボードからマウスに手を動かしたり戻したりするのに時間がかかるため)が、この場合、ウィンドウのサイズとサイズ変更の迅速さ(別のキーシーケンスを入力する代わりにマウスを動かし続ける)を調整しながら、即座にフィードバックを得ることが、Moingmyの手の遅延よりも重要です。


4
Gnome-terminal :set mouse=nで十分だとわかりましたが、tmuxの内部:set ttymouse=xterm2が必要な場合に有効にするには、これ以上同意できませんでした。
-the_velour_fog

1
確かに、私はキーボードが大好きですが、この種のものはマウスの方が優れています。
カルバート

うわー、これを私の注意にもたらしてくれてありがとう!
チャーリーゴリチャーナズ

完全に同意する「が、私は、この場合には、サイズおよび再リサイズの素早ウィンドウを調整しながら即座にフィードバックを持っていることによって節約される時間がmoingmy手の遅延を上回る(マウスをmovvingの代わりに、別のキーシーケンスを入力しておく)、ことがわかります。 」
ナワズ

4

誰も言及していないようz{nr}<CR>です。

の場合:h ^w_、そのz{nr}<CR>すぐ下にが表示されCTRL-W_ます。これはと同じ効果があります。

z=スペルチェックが不要で、以下に追加した.vimrc場合、

" vertical resize, z0<CR> minimize, z= equalize, z99<CR> maximize.
nnoremap z= <C-w>=

次に、ウィンドウの高さを変更するには:

  • z0<CR> 現在のウィンドウの高さを最小化する
  • z99<CR> 現在のウィンドウの高さを最大化する
  • z= それらをすべて平等にする

2
この使用zは少し直感的ではありません。C-Wマッピングに固執すべきだと思います。しかし、何がそこにあるかを知ることは素晴らしいことです。
クラウス

4

分割のサイズ変更をより迅速に:http : //vim.wikia.com/wiki/Resize_splits_more_quickly

:resizeコマンドまたはそのショートカット:resを使用して、ウィンドウの高さを変更できます。高さを60行に変更するには、次を使用します。 :resize 60

高さを段階的に変更することもできます。5単位で高さを変更するには、次を使用します。 :res +5 :res -5

:vertical resizeを使用して、現在のウィンドウの幅を変更できます。幅を80列に変更するには、次を使用します。 :vertical resize 80

幅を段階的に変更することもできます。5単位で幅を変更するには、次を使用します。 :vertical resize +5 :vertical resize -5


これは、ことはほとんどありませんResize splits more quicklyこれらのコマンドは、箱から出して行われているキーバインドにバインドされていない限り、
クラウス・

エナンの声明に完全に同意しないでください。私はこの答えが好きです私は
クラフト

0

何らかの理由(おそらくプラグイン)で、標準C-w >(など)がmyで機能しませんでした~/.vimrc

これらの.vimrc追加は機能しました(Ctrl-Shift-Left... where Left | Right=左矢印キーと右矢印キー。

" noremap <silent> <C-S-Left> :vertical resize +5<CR>
" noremap <silent> <C-S-Right> :vertical resize -5<CR>
noremap <silent> <C-S-Left> :vertical resize +1<CR>
noremap <silent> <C-S-Right> :vertical resize -1<CR>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.