2011-10-21 12 views
6

से सभी फ़ाइलों को दोबारा प्रिंट करना मैं वर्तमान में मैकवीम का उपयोग कर रहा हूं और मैं अपने काम करने वाले पेड़ में सभी फाइलों को प्रिंट करना चाहता हूं। क्या ऐसा करने का कोई तरीका है, शायद hardcopy कमांड का उपयोग कर?विम

+0

': qa' सभी खुली फ़ाइलों बंद हो जाएगा ... मुझे आश्चर्य है कि' A' संशोधित कर सकते हैं, तो ? –

उत्तर

6

फ़ाइलों के एक समूह के लिए एक कमांड निष्पादित करने के लिए एक सुविधाजनक तरीका, उनके नाम की सूची को इकट्ठा के रूप में यह परिभाषित करने के लिए है नई तर्क सूची (:help arglist देखें), और उसके बाद तर्क सूची में उन फ़ाइलों पर कमांड को पुन: सक्रिय करें।

  1. पहला कदम करने के लिए, एक वाइल्डकार्ड मिलान वांछित फाइलों के साथ :args आदेश का उपयोग करें। उदाहरण के लिए,

    :args ./**/* 
    

    वर्तमान निर्देशिका और उसकी उप में सभी फ़ाइलों के नाम करने के लिए तर्क सूची बनाया; इसी तरह,

    :args /tmp/**/*.{c,h} 
    

    /tmp और उसकी उप-सब .c और .h फ़ाइलों का चयन करता है। वाइल्डकार्ड वाक्यविन्यास के बारे में विवरण के लिए, :help wildcard देखें।

    तो एक सबट्री प्रिंट फ़ाइलों से युक्त की जड़ तक मार्ग अज्ञात पहले से है और एक स्क्रिप्ट द्वारा बनाया गया है, आदेश

    :exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)')) 
    

    जहां चर p कि के पथ नाम शामिल करने के लिए माना जाता है का उपयोग करें मूल निर्देश संहिता।

  2. प्रिंटर के तर्क सूची में फ़ाइलों को भेजने के लिए, उन :argdo आदेश का उपयोग फ़ाइलों के लिए :hardcopy आदेश पर अमल,

    :argdo hardcopy! 
    

    ! विनिर्देशक मापदंडों मुद्रण के चयन के लिए मॉडल संवाद को रोकता है।

    प्रत्येक फ़ाइल को पर एक अलग पोस्टस्क्रिप्ट दस्तावेज़ को फ़ाइल के रूप में एक अलग पोस्टस्क्रिप्ट दस्तावेज़ पर मुद्रित करने के लिए एक और जटिल कमांड का उपयोग किया जा सकता है।

    :argdo hardcopy! >%:p.ps 
    

    यहाँ एक मुद्रित फ़ाइल का नाम एक इसी पोस्टस्क्रिप्ट फ़ाइल का नाम (:help cmdline-special देखें) प्राप्त करने के लिए .ps प्रत्यय साथ concatenated है।

    :argdo -argument आदेश को तेज करने के लिए, विम eventignore सूची में जोड़कर Syntax autocommand घटना पर ध्यान नहीं देता। इसका मतलब है कि :argdo ne, इसी मुद्रित दस्तावेज़ एक वाक्य रचना हाइलाइटिंग (printoptions में syntax:y सेट के मामले में) नहीं होती है अगर Syntax autocommands :hardcopy आदेश से पहले तर्क सूची में एक फ़ाइल के लिए नहीं चला गया था। तर्क सूची में सभी फ़ाइलों के लिए Syntax autocommands निष्पादित करने के लिए, पहले कमांड का उपयोग करें।

    :argdo set ei-=Syntax | do Syntax 
    

    मुद्रण के रूप में ही समय में ऐसा करने के लिए, आदेशों को श्रेणीबद्ध:

    :argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps 
    
+0

सामान्य रूप से, अधिक से अधिक – sehe

+0

उत्तर लोगों के लिए धन्यवाद। यह काम। –

+0

@ib। इस पर सवाल का पालन करें। जब मैं इस कमांड का उपयोग करता हूं तो मुझे काम करने के लिए सिंटैक्स हाइलाइटिंग प्रतीत नहीं होता है। जो मैं कह सकता हूं उससे, यह पहले व्यक्ति के लिए करता है लेकिन अगले में से कोई भी पोस्टस्क्रिप्ट पर प्रिंट नहीं करता है। आश्चर्य है, वह क्यों है? मैंने अपने vimrc में 'printoptions = वाक्यविन्यास: y' 'सेट करने का प्रयास किया है, लेकिन यह चाल नहीं लगता है। –

3

संपादित करें क्षमा करें, मुझे पहले गलत समझा गया।

सभी मुद्रित करने के लिए, मान लीजिए आपके कार्यशील निर्देशिका में php और सी # फाइलें:

:args ./*.{cs,php} **/*.{cs,php} 
:argdo ha 
+0

बस ': args **/*। {Cs, php} 'यह करेगा, आईआईआरसी। – fachexot