7

さて、最初に、これは私が探している答えではありません:

autocmd VimResized * :wincmd =

説明させてください。垂直に分割されたウィンドウが2つあり、1つは30%サイズ、もう1つは70%サイズであると仮定します。ウィンドウのサイズを変更するとき、そのパーセンテージを同じままにしておきたいです。このコマンドがないと、右側の分割がゆっくりと折りたたまれ、最終的にウィンドウに何も表示されなくなります。上記のコマンドで、ウィンドウのサイズ変更を開始すると、ウィンドウサイズはすぐに50%/ 50%に変更されます。

私は多くの分割(垂直および水平)で作業しており、上記のコマンドですべてを等しくすることは望んでいませんが、同時に、ウィンドウに比例してサイズを変更する必要があります...ウィンドウのサイズが変更されたときに同じままになる、ウィンドウ内のすべての分割の高さ/幅のパーセンテージ。アイデア?

4

3 に答える 3

3

基本的にromainlの回答で概説されているアプローチに従って、 ProportionalResizeプラグインにこれ​​を実装しようとしました。サイズ変更コマンドを:ProportionalResizeラッパーでラップできます。プラグインはさまざまなイベントにフックして、Vimウィンドウのサイズがマウスなどで変更されたときに自動的に適応できるようにします。

于 2013-03-04T17:04:03.963 に答える
3

あなたがそれをするための「vim-公式」の方法を求めているなら、答えはNOです。(Vim 7.3)

それを証明するために:

vimを開き、次のように入力 して:h todo<Enter>から入力し/proportionally[Enter]ます。

-   When resizing the whole Vim window, the windows inside should be resized
    proportionally (Webb).

だからvimのtodoリストに載っています。このウィンドウタイプでは、先頭のマイナスの 意味ggを確認できます"-"Priority classification:

-   unclassified

必要に応じて、自分で関数を作成し、VimResizedイベント時に、ロジックに基づいてすべてのウィンドウのサイズを変更できます。

于 2013-02-01T15:51:55.720 に答える
2

WinEnterウィンドウサイズをログに記録し、それらを/のような一連のイベントにバインドし、それらの値を使用してウィンドウのサイズを変更するWinLeave別のイベントにバインドする関数を作成できます。VimResized

これは簡単な作業のようには聞こえません。

または良いアイデアのようにさえ。

于 2013-02-01T23:12:21.773 に答える