vi / vim, मैं एक नई फ़ाइल में कई पंक्तियों को कैसे लिख सकता हूं


30

मेरे पास लाइनों का एक गुच्छा है जिसे मैं एक अलग फ़ाइल में लिखना चाहता हूं।
मैं उसे कैसे कर सकता हूँ?

जवाबों:


44

तुम कर सकते हो

:100,200w filename

बेशक 100,200 लाइनों की सीमा है जिसे आप लिखना चाहते हैं।


क्या पते समावेशी या अनन्य हैं?
मार्सिन

3
समावेशी। यदि आप पैटर्न का उपयोग करते हैं, तो भी समावेशी:: / ^ कुछ /, / ^ अन्य / डब्ल्यू फ़ाइल नाम, या निशान: 'ए,' बीडब्ल्यू फ़ाइल नाम में 'ए' और 'बी' चिह्नित लाइनें शामिल हैं।
ब्रूस एडगर

हाय @Bernhard, क्या होगा अगर मैं वर्तमान फ़ाइल से लाइनों में कटौती करना चाहता हूं।
रवि सेवाता

19

सबसे सामान्य:

  1. आप जिस समूह को लिखना चाहते हैं, उसकी पहली पंक्ति में कर्सर ले जाएँ। हिट m और aसीक्वेंटल। वह "सेट मार्क '' ए '" है।

  2. समूह की अंतिम पंक्ति में कर्सर ले जाएँ, 'm' और 'b' को हिट करें।

  3. कमांड मोड हिट में बदलें: एक अनुक्रम के रूप में :'a,'b w filenameफिर रिटर्न मारा।

यह vi, nvi और vim में काम करेगा।

एक और तरीका, अधिक आधुनिक विम में काम करता है:

  1. जिस पंक्ति को आप लिखना चाहते हैं, उसके समूह की पहली पंक्ति पर कर्सर रखें। हिट V, "लाइनों के दृश्य ब्लॉक शुरू करें" के लिए।

  2. लाइनों के समूह के नीचे कर्सर ले जाएँ। विम रिवर्स वीडियो के साथ प्रत्येक पंक्ति को उजागर करेगा।

  3. लिखें। :कमांड लाइन मोड में जाने के लिए हिट करें। यह आपको इस तरह दिखता है कि तराजू के तल पर एक संकेत देगा: :'<,'> इसका मतलब है कि दृश्य ब्लॉक की शुरुआत से अंत तक। टाइप करें wऔर फ़ाइल नाम और हिट वापसी।

आप फ़ाइल के अंत में सिंगल लाइन जोड़ सकते हैं जैसा कि आपको अपने कर्सर को उस लाइन पर डालकर करना है जिसे आप लिखना चाहते हैं फिर टाइप करना: :.w >> filenameऔर रिटर्न मारना।

"लाइन्स ऑफ़ द ग्रुप ऑफ़ लाइन्स" कमांड भी केवल "फाइलनेम" के बजाय ">> फ़ाइलनाम" के साथ काम करते हैं। ">>" के कारण केवल लिखने के बजाय फ़ाइल में संलग्न करने के लिए vi या vim का कारण बनता है।


8

बर्नहार्ड के उत्तर में जोड़ने के लिए, आप दृश्य मोड का उपयोग करके एक क्षेत्र भी चुन सकते हैं और फिर दर्ज कर सकते हैं :w filename


8

यदि आप उस पंक्ति संख्या को जानते हैं जिसे आप लिखना चाहते हैं, तो आप इसे कमांड लाइन से कर सकते हैं:

vim -c "100,200w new_file.txt" -c wq original_file.txt

1

एक छोटी सी चाल रिश्तेदार लाइन नंबर का उपयोग कर रही है। उदाहरण के लिए: + 0, + 99 w फ़ाइल का नाम फ़ाइल नाम के लिए अगली 100 पंक्तियाँ लिखें।


मूल फ़ाइल को अधिलेखित नहीं करेंगे? ओपी अलग फाइल में लिखना चाहेंगे।
सब्रेवॉल्फ़

1
@ सबेरेवॉल्फी नहीं; हो सकता है कि आप पंक्ति संख्या के बाद 'फ़ाइल नाम' से चूक गए हों। मैंने सिर्फ उसके संस्करण का परीक्षण किया और यह काम किया।
felwithe
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.