मैं वर्तमान पंक्ति से फ़ाइल के अंत तक VIM सभी पाठ को कैसे हटा सकता हूं?


213

मेरे पास बहुत बड़ी फाइलें (10Gb से अधिक) हैं। मुझे फ़ाइल के ऊपर से केवल कुछ पंक्तियों की आवश्यकता है। क्या यह संभव है (vim में) शेष फ़ाइल को हटाने के लिए (वर्तमान लाइन से फ़ाइल के अंत तक)?


12
मुझे पता है कि आप वीआईएम का उपयोग करना चाहते हैं, लेकिन मैं एक शेल कमांड करना चाहता हूं: head -n <number_of_lines> <filename> > <truncated_filename> जहां -nआप ऊपर से चाहते हैं लाइनों की संख्या के लिए पैरामीटर कहां है
ईहेवुतोव

जवाबों:


365

dG वर्तमान लाइन से फ़ाइल के अंत तक हटा देगा

dCtrl+ Endकर्सर को फ़ाइल के अंत तक हटा देगा

लेकिन अगर यह फ़ाइल आपके अनुसार बड़ी है, तो आप headफ़ाइल को संपादित करने और सहेजने के बजाय पहले कुछ पंक्तियों को पढ़ने से बेहतर हो सकते हैं ।

head hugefile > firstlines

(यदि आप विंडोज पर हैं तो आप Win32 पोर्ट का उपयोग कर सकते हैं head)


17
आप यह निर्दिष्ट कर सकते हैं कि headउदाहरण के लिए: head -n20 hugefile20 लाइनों के साथ कितनी लाइनें आपूर्ति करती हैं। n चूक के लिए 10.
drevicko

3
के लिए एक प्रेरणा की आवश्यकता है head? बड़ी फ़ाइल (1G +) पर dG का उपयोग करने में बहुत समय लगता है (उदाहरण के लिए, 5 मिनट)।
बर्निनलियो

3
कन्वर्से की तलाश करने वालों के लिए, dggवर्तमान लाइन से फ़ाइल के प्रारंभ तक डिलीट हो जाएगा।
स्टीवेस्लिवा

d Ctrl + End ने मेरे लिए काम नहीं किया। d Shift + End ने हालांकि कर्सर को लाइन के अंत तक हटाने के लिए किया था।
lightwing


30

:.,$d

यह फ़ाइल के अंत में वर्तमान लाइन से सभी सामग्री को हटा देगा। यह बहुत उपयोगी है जब आप परीक्षण वेक्टर पीढ़ी या स्ट्रिपिंग के साथ काम कर रहे हैं।


2
मैं शुरुआती लाइन का अधिक नियंत्रण रखना पसंद करता हूं, इसलिए मैं उपयोग करता हूं: :<line number>,$dउदाहरण के लिए: :3,$dलाइन 3 से फ़ाइल के अंत तक हट जाएगा
emont01

0

बस एक और तरीका जोड़ें, सामान्य मोड में, ctrl+vफिर टाइप Gकरें, बाकी का चयन करें, फिर D, मुझे नहीं लगता कि यह प्रभावी है, आपको @Ed Guiness, हेड -n 20> फ़ाइल नाम linux में करना चाहिए।

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