4 चौथाई विभाजन प्राप्त करने के लिए कमांड लाइन से विम विभाजन कमांड का उपयोग करना


20

मैं कमांड लाइन पर चार vim फाइलें खोलना चाहता हूं:

vim file1 file2 file3

लेकिन मैं चाहूंगा कि प्रत्येक फ़ाइल को एक अलग विभाजन में खोला जाए:

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

(ऊपर स्क्रीन 4 बार क्षैतिज रूप से विभाजित होती है)

आदर्श रूप से मैं जो करना चाहूंगा वह स्क्रीन को 4 वर्गों में विभाजित करता है जैसे:

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

मुझे पता है कि यह कैसे करना है एक बार विम खुला है, लेकिन मैं कमांड लाइन (उपयोग vs) से ऐसा करने में असमर्थ हूं । कोई विचार? मैं जो कुछ भी कोशिश करता हूं वह इस तरह दिखता है (या एक भिन्न भिन्नता):

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

जवाबों:


22

यदि आप CTRL + W दबा रहे हैं तो आप विभिन्न विंडो में जाने के लिए 'wincmd' कमांड का उपयोग कर सकते हैं।

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

यह फाइलों को इस प्रकार व्यवस्थित करेगा:

file1   file2
file3   file4

यह कैसे काम करता है: फ़ाइल 4 खोलता है। क्षैतिज रूप से विभाजित होता है इसलिए फ़ाइल 2 इसके ऊपर है। विभाजन को लंबवत रूप से विभाजित किया जाता है इसलिए फ़ाइल 1 बाईं ओर है, अगली विंडो पर जाता है (फ़ाइल 1) और फिर से लंबवत विभाजन करता है।


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, निम्नलिखित कुछ काम कर सकते हैं। उम्मीद है कि एक अनुभवी विम ट्रिम वजन कर सकता है क्योंकि मुझे पता है कि यह सही नहीं है:

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()'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.