vimで複数のファイルを二次元に自動で画面分割して開く

Pythonエンジニア見習いです。今回は一気にファイルを指定してvimの画面分割で開く
方法について書きたいと思います。

Vimでの画面分割の問題点

Vimでたくさんのファイルを一気に開こうとすると、-oオプションや-Oオプションなどが使用できますが、画面のサイズからいって、だいたい4分割ぐらいが編集できる限界になってきます。そこで、画面を二次元に配置することでこの問題は解決します。しかし、Vimにファイルを入れるだけでは二次元に配置してくれません。

解決方法

Using the vim split command from the command line to get 4 quarter splitsに書かれている方法を用います。そして、それを用いて書いたシェルスクリプトが以下のURLのものになります。
https://gist.github.com/IlIlIlIl/fe05be538341ef8d9710b8578106cc80
なお同時に開けるファイルは11個までとなっており、12個以上は-oをつけて開く設定になっています。使用方法はリンク先のコードを直接.bashrc.zshrcに書いて使います。

活用例

毎回、vim_auto_window_splitと書くのは面倒なのでvisとエイリアスして使うものとします。

今回は例として以下のようなフォルダ構造があるとします。

.
├── a
│   ├── a
│   ├── b
│   └── c
├── b
│   ├── a
│   ├── b
│   └── c
└── c
    ├── a
    ├── b
    └── c

各フォルダの中のファイルをすべて画面分割して見たい場合は以下のようにコマンドします。

vis $(find . -type f)

画面分割は以下の画像のように行われます。

次は、各フォルダの中にあるファイルを選択して見たい場合、percolというコマンドを用います。percolについては、コマンドラインでの選択的インターフェイスについて考えるを参照してください。

vis $(find . | percol)

そのうちから

./a/a
./a/b
./b/a
./c/a
./c/b

を選んで開いた場合、画面分割は以下のようになります。