2010-01-07 13 views
82

क्या विम के भीतर से किसी निर्देशिका में सभी फाइलें खोलने का कोई तरीका है? तो :command जो प्रभाव में कहेंगे "बफर में /some/path के तहत सभी फ़ाइलों को खोलें"।मैं विम में एक बार में कई फाइलें कैसे खोल सकता हूं?

आदर्श रूप से, सभी फ़ाइलों को दोबारा एक बार फिर से खोलना बहुत अच्छा होगा।

उदाहरण के लिए::

उत्तर

101

आदेश आप देख रहे हैं आर्ग है

:args /path_to_dir/* 

निर्देशिका में सभी फ़ाइलों को खुलेगा

+31

फ़ाइलों को दोबारा मिलान करने के लिए '**' का उपयोग करें। जैसे ': args/path_to_dir/**' – daf

+0

बिल्कुल सही। ग्रेसियस। – Ethan

+1

एक्सटेंशन के बिना फ़ाइलों को खोलने के लिए, मूल निर्देशिका निर्दिष्ट करें उदा। तर्क ** /। एचजी/एचजीआरसी काम करता है लेकिन **/एचजीआरसी नहीं करता है। – 79E09796

9

आप का प्रयास किया था

:n /some/path/* 

यह होगा सभी फ़ाइलों को/कुछ/पथ

में खोलें

मुझे नहीं लगता कि यह फ़ाइल को फिर से खोल देगा हालांकि।

संपादित

शायद का उपयोग कर ** रिकर्सिवली खुल जाएगा के रूप में DAF

+0

हाँ, यह भी काम करता है। – daf

+0

क्या करता है: एन मतलब है? विम की मदद में देखकर मुझे केवल "अंतिम पैटर्न दोहराने" के लिए संकेत मिलता है .. जो मैं समझता हूं वह कीस्ट्रोक है। क्या केवल कमांड मोड के लिए मदद प्राप्त करने का कोई तरीका है? – U0001

+1

बहुत आसान: एच: एन .. ": n" के लिए सहायता प्राप्त करें। क्या मुझे अपने प्रश्नों का उत्तर देना पसंद नहीं है;) – U0001

21

mentionned अगर मैं एक निश्चित विस्तार के साथ समाप्त सभी फाइलों को खोलना चाहते हैं क्यों यह काम नहीं करता? मैंने

:n ./**.cs 

और वर्तमान निर्देशिका में केवल फ़ाइलों को खोलने की कोशिश की।

मैंने पाया answer.The सही कोड :n **/*.cs

अधिक जानकारी :h find

1

के लिए फ़ाइलों को खोलने के लिए एक अन्य तरीका है रिकर्सिवली

find . -type f -exec vi {} \; 
+4

"विम के भीतर से" प्रतिबंध को पूरा नहीं करता है। – ZyX

+0

और फिर भी आवश्यक है :) –

+3

यह नहीं करता है। आवश्यक निर्देशिका से फ़ाइलों की आवश्यकता क्या है * vim * के भीतर से। यदि आप शर्तों को फेंक रहे हैं तो आप यह भी कह सकते हैं कि 'केट **/* (^ /) '(zsh globbing वाक्यविन्यास का उपयोग करके) की आवश्यकता होती है: दी गई निर्देशिका से फ़ाइलों को दोबारा खोलता है। यह "भीतर से" नहीं है और यह बिल्कुल विम का उपयोग नहीं कर रहा है, लेकिन यह "अभी भी आवश्यक है"। या यहां तक ​​कि 'केट ~/.vimrc ~/.bashrc'। "दिए गए निर्देशिका से" और "पुनरावर्ती" से पूरी तरह से "साथ" से "ओमटिंग", लेकिन यह "अभी तक आवश्यक है": फाइलें खुलती हैं। – ZyX

1

आप तर्क सूची में जोड़ने के लिए चाहते हैं, तो ;

:arga what_you-d_like_to_add 

अधिक जानकारी के लिए/vim में से

:he arga 

देखते हैं।

4

args के साथ गड़बड़ की आवश्यकता नहीं है एक विधि को फाइल फ़ाइल में फ़ाइलों की सूची डालना है, और उसके बाद उस फ़ाइल में आदेश चलाने के लिए :so कमांड का उपयोग करें।

उदाहरण के लिए, यदि आप सभी फ़ाइलों कि किसी दिए गए निर्देशिका में .php में खत्म हो, खोलना चाहते हैं पहले files.txt फ़ाइलों की सूची, जो कुछ भी आदेश आप उन्हें खोलने के लिए उपयोग करना चाहते हैं के साथ prepended युक्त पैदा करते हैं।

sp alpha.php 
sp bravo.php 
sp charlie.php 

फिर, vim भीतर:

:so files.txt 

हैं फ़ाइलों की सूची बड़ी है, यह अपेक्षाकृत तुच्छ है एक फाइल करने के लिए ls के उत्पादन में पुनः निर्देशित, और उसके बाद का उपयोग करके, जल्दी से files.txt फ़ाइल उत्पन्न करने के लिए प्रत्येक फ़ाइल नाम से पहले sp प्रीपेड करने के लिए एक विम मैक्रो।

यह स्पष्ट रूप से args और argdo आदेशों का उपयोग करने के रूप में सुरुचिपूर्ण नहीं है, लेकिन वे आदेश भी बहुत जटिल हैं।

कमांड लाइन पर एक ही कमांड के साथ ऐसा करने का एक तरीका भी हो सकता है, लेकिन 16 वर्षों के बाद भी मुझे अजीब और आर्केन होने के लिए विम प्रोग्रामिंग मिलती है।

+0

दिलचस्प! यदि इन फ़ाइलों की सभी आवश्यक नहीं हैं, तो किसी दिए गए निर्देशिका की सभी फ़ाइलों को अंधाधुंध खोलने के बजाय, फ़ाइलों को खोलने की आवश्यकता है, इस पर नियंत्रण रखने के लिए एक अच्छा तरीका लगता है। – cram2208

संबंधित मुद्दे