से सभी फ़ाइलों को दोबारा प्रिंट करना मैं वर्तमान में मैकवीम का उपयोग कर रहा हूं और मैं अपने काम करने वाले पेड़ में सभी फाइलों को प्रिंट करना चाहता हूं। क्या ऐसा करने का कोई तरीका है, शायद hardcopy
कमांड का उपयोग कर?विम
विम
उत्तर
फ़ाइलों के एक समूह के लिए एक कमांड निष्पादित करने के लिए एक सुविधाजनक तरीका, उनके नाम की सूची को इकट्ठा के रूप में यह परिभाषित करने के लिए है नई तर्क सूची (:help arglist
देखें), और उसके बाद तर्क सूची में उन फ़ाइलों पर कमांड को पुन: सक्रिय करें।
पहला कदम करने के लिए, एक वाइल्डकार्ड मिलान वांछित फाइलों के साथ
:args
आदेश का उपयोग करें। उदाहरण के लिए,:args ./**/*
वर्तमान निर्देशिका और उसकी उप में सभी फ़ाइलों के नाम करने के लिए तर्क सूची बनाया; इसी तरह,
:args /tmp/**/*.{c,h}
/tmp
और उसकी उप-सब.c
और.h
फ़ाइलों का चयन करता है। वाइल्डकार्ड वाक्यविन्यास के बारे में विवरण के लिए,:help wildcard
देखें।तो एक सबट्री प्रिंट फ़ाइलों से युक्त की जड़ तक मार्ग अज्ञात पहले से है और एक स्क्रिप्ट द्वारा बनाया गया है, आदेश
:exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)'))
जहां चर
p
कि के पथ नाम शामिल करने के लिए माना जाता है का उपयोग करें मूल निर्देश संहिता।प्रिंटर के तर्क सूची में फ़ाइलों को भेजने के लिए, उन
: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
सामान्य रूप से, अधिक से अधिक – sehe
उत्तर लोगों के लिए धन्यवाद। यह काम। –
@ib। इस पर सवाल का पालन करें। जब मैं इस कमांड का उपयोग करता हूं तो मुझे काम करने के लिए सिंटैक्स हाइलाइटिंग प्रतीत नहीं होता है। जो मैं कह सकता हूं उससे, यह पहले व्यक्ति के लिए करता है लेकिन अगले में से कोई भी पोस्टस्क्रिप्ट पर प्रिंट नहीं करता है। आश्चर्य है, वह क्यों है? मैंने अपने vimrc में 'printoptions = वाक्यविन्यास: y' 'सेट करने का प्रयास किया है, लेकिन यह चाल नहीं लगता है। –
संपादित करें क्षमा करें, मुझे पहले गलत समझा गया।
सभी मुद्रित करने के लिए, मान लीजिए आपके कार्यशील निर्देशिका में php और सी # फाइलें:
:args ./*.{cs,php} **/*.{cs,php}
:argdo ha
बस ': args **/*। {Cs, php} 'यह करेगा, आईआईआरसी। – fachexot
': qa' सभी खुली फ़ाइलों बंद हो जाएगा ... मुझे आश्चर्य है कि' A' संशोधित कर सकते हैं, तो ? –