私は通常、Vim の画面を 2 つの垂直方向のウィンドウに分割し、それぞれをさらに水平方向に分割することができます。垂直ウィンドウを追加または削除したい場合があります。トップレベルの垂直分割がいくつあるかを検出し、必要に応じて vsplit を追加または削除する方法はありますか?
たとえば、画面が次のようになっているとします。
+--------+--------+
| | |
| | |
+--------+ |
| | |
| | |
| +--------+
| | |
+--------+--------+
:Columns 1
あげたい
+--------+
| |
| |
+--------+
| |
| |
| |
| |
+--------+
一番右の 2 つのウィンドウを閉じます。
:Columns 2
2 つの列が既に開いていることを検出して、何もしたくありません。
そして、私は:Columns 3
私に与えたいです
+--------+--------+--------+
| | | |
| | | |
+--------+ | |
| | | |
| | | |
| +--------+ |
| | | |
+--------+--------+--------+
関数が水平分割内の垂直分割を無視する場合は問題ありません。たとえば、私が持っていた場合
+--------+
| |
| |
+---+----+
| | |
| | |
| | |
| | |
+---+----+
そして私は走った:Columns 2
、私は得るだろう
+--------+--------+
| | |
| | |
+---+----+ |
| | | |
| | | |
| | | |
| | | |
+---+----+--------+