4 çeyrek bölme elde etmek için komut satırından vim split komutunu kullanma


20

Komut satırında dört vim dosyası açmak istiyorum:

vim file1 file2 file3

Ancak her dosyanın ayrı bir bölmede açılmasını istiyorum:

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

(Yukarıdaki ekran yatay olarak 4 kez böler)

İdeal olarak yapmak istediğim, ekranı 4 kareye bölmek:

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

Vim açıldığında bunun nasıl yapılacağını biliyorum, ancak bunu komut satırından (kullanarak vs) yapamam . Herhangi bir fikir? Denediğim her şey şu şekilde (veya farklı bir varyasyon) şöyle bakıyor:

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

Yanıtlar:


22

CTRL + W tuşlarına bastığınız gibi farklı pencerelere geçmek için 'wincmd' komutunu kullanabilirsiniz.

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

Bu, dosyaları aşağıdaki gibi ayarlayacaktır:

file1   file2
file3   file4

Nasıl çalışır: file4'ü açar. Yatay olarak böler, böylece file2 onun üstündedir. Dikey olarak böler, böylece dosya1 sola döner, bir sonraki pencereye (dosya1) gider ve dikey olarak tekrar böler.


7

Ekranı istediğim gibi otomatik olarak bölen bu bilgiyi kullanarak bir senaryo yazdım:

vimsp.py file1 file2 / file3

Sonuçları

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

Ayrıca, tüm dosyaların önüne / önüne koymak, hepsini dikey olarak ayırır:

vimsp.py / file1 file2 file3

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

https://gist.github.com/1376956


1

Kesinlikle komut satırından:

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

... 9x 3x3'lük bir ızgarada açılacak.

Ayrıca, bir fonksiyon yazabilir ve kendinize ekleyebilirsiniz .vimrc; aşağıdakiler işe yarayabilir Umarım tecrübeli bir vim komut dosyası tartılabilir çünkü bunun doğru olmadığını biliyorum:

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

... sonra komut satırından kullanın:

vim <list of 9 files> -c ':execute mysplit()'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.