コマンドラインからvim splitコマンドを使用して、4分割を取得する


20

コマンドラインで4つのvimファイルを開きたい:

vim file1 file2 file3

しかし、私は各ファイルを別々の分割で開くことを望みます:

vim -c "split file1" -c "split file2" -c "split file3" file4

(上記は画面を水平に4回分割します)

理想的には、画面を次のような4つの正方形に分割します。

|-------|-------|
|       |       |
|       |       |
|-------|-------|
|       |       |
|       |       |
|-------|-------|

vimが開いたらこれを行う方法は知っていますが、コマンドラインから(を使用してvs)これを行うことはできません。何か案は?私がしようとするすべては、このようになります(または異なるバリエーション):

|-------|-------|
|       |       |
|-------|       |
|       |       |
|-------|       |
|       |       |
|       |       |
|-------|-------|

回答:


22

Ctrlキーを押しながらWキーを押しているように、「wincmd」コマンドを使用して別のウィンドウに移動できます。

vim file4 -c 'split file2' -c 'vsplit file1' -c 'wincmd j' -c 'vsplit file3'

これにより、ファイルが次のように配置されます。

file1   file2
file3   file4

仕組み:file4を開きます。file2がその上にあるように水平に分割します。file1が左にあるように垂直に分割し、次のウィンドウ(file1)に移動して、再び垂直に分割します。


7

この情報を使用して、必要に応じて画面を自動的に分割するスクリプトを作成しました。

vimsp.py file1 file2 / file3

結果

-----------
|f1  |f2  |
|    |    |
-----------
|file 3   |
|         |
-----------

また、すべてのファイルの前に/を置くと、代わりにすべてが垂直に分割されます。

vimsp.py / file1 file2 file3

-------------
|file 1     |
-------------
|file 2     |
-------------
|file 3     |
-------------

https://gist.github.com/1376956


1

コマンドラインから厳密に:

vim -o3 <list of 9 files> -c:{vsp,vsp,wincmd\ j,vsp,vsp,wincmd\ j,vsp,vsp} \
  -c "windo execute 'argument ' . winnr()"

... 3x3グリッドで9つのファイルを開きます。

また、関数を記述してに追加することもできます.vimrc。次のように動作します。これが正しくないことがわかっているため、経験豊富なvimスクリプト作成者が計量できることを願っています:

function! mysplit(...)
  execute sp #1
  execute sp #1
  execute vsp
  execute vsp
  execute wincmd j
  execute vsp
  execute vsp
  execute wincmd j
  execute vsp
  execute vsp
  % I'm not at all experienced with writing vim scripts, so
  % the syntax on the following line is almost certainly not
  % correct; this is conceptual only.
  execute windo execute 'argument ' . winnr()
endfunction

...次に、コマンドラインから使用します。

vim <list of 9 files> -c ':execute mysplit()'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.