क्या मैं एक बड़ी फ़ाइल को प्रभावी ढंग से खोलने के लिए विम का उपयोग कर सकता हूं?


17

कभी-कभी मुझे कई जीबी लॉग फ़ाइल खोलने की आवश्यकता होती है, अब मुझे उपयुक्त भाग प्राप्त करने के लिए पूंछ का उपयोग करने की आवश्यकता है लेकिन यह बहुत थकाऊ है।

क्या मैं इसे सीधे खोलने के लिए विम का उपयोग कर सकता हूं? वर्तमान में विम एक बड़ी फ़ाइल खोलते समय बहुत सारी मेमोरी पर कब्जा कर लेगा ... बस आश्चर्य है कि इसकी आवश्यकता क्यों है? यदि कोई विकल्प है तो उस मेमोरी को लोड होने से रोका जा सकता है?

जवाबों:


13

यदि आप किसी फ़ाइल को देखना चाहते हैं, तो कम उपयोग करें ।

यदि आपको फ़ाइल का एक विशिष्ट भाग काटने की आवश्यकता है, तो यह करें ( कम के भीतर ):

  1. आप जिस पेज में रुचि रखते हैं, उस पर जाएं

  2. कुंजी दबाएं mऔर a- इसका मतलब है: निशान स्थिति ए

  3. उस फ़ाइल की अंतिम स्थिति पर जाएं जिसमें आप रुचि रखते हैं

  4. चाबियाँ |(पाइप) दबाएं और a- इसका मतलब है: यहां सब कुछ पाइप करें और कमांड के लिए स्थिति

  5. उस कमांड में टाइप करें जिसे आप डेटा भेजना चाहते हैं। यदि आप इस डेटा को संपादक बफ़र में कॉपी करना चाहते हैं, तो बस vim -कमांड के रूप में उपयोग करें ( फ़ाइल नाम के रूप में ऋण चिह्न का अर्थ है कि संपादित की जाने वाली फ़ाइल को स्टड से पढ़ा जाना है )।

यदि आप जानते हैं कि आपको फ़ाइल के अंत तक एक विशिष्ट स्थिति से सभी डेटा की आवश्यकता होगी, तो आप यह भी कर सकते हैं:

  1. आप जिस पेज में रुचि रखते हैं, उस पर जाएं

  2. चाबियाँ |(पाइप) दबाएं और $- इसका मतलब है: यहां और फ़ाइल के अंत के बीच सब कुछ पाइप एक कमांड में

  3. उस कमांड में टाइप करें जिसे आप डेटा भेजना चाहते हैं (जैसे cat >/tmp/myfileया vim -)।


1
मुझे नहीं पता था कि मैं यह lessकर सकता हूं। धन्यवाद :)
icedwater

4

की जाँच करें इस और इस

मूल रूप से, आपके विकल्प हैं:

  1. विम बड़ी फ़ाइल स्क्रिप्ट एक कोशिश दे। यह बड़ी फ़ाइलों को संपादित करते समय विम की जवाबदेही में सुधार करने के लिए कुछ सुविधाओं को अक्षम करता है।
  2. छोटे विखंडू तक फ़ाइल को तोड़ें, जिस चंक को आप परवाह करते हैं उसे संपादित करें और उन्हें वापस एक साथ जोड़ दें।

3

हां, विम बहुत बड़ी फाइलें खोल सकता है । लेकिन, कुछ चीजों को याद रखने के लिए आपको ऐसा करने से पहले शायद ध्यान रखना चाहिए:

  • फ़िलाटाइप को अनदेखा करें (कोई सिंटैक्स हाइलाइटिंग वगैरह नहीं), हालाँकि सभी प्रायिकता में यह लॉग फ़ाइलों के लिए सिंटैक्स हाईलिगिंग नहीं होगा, लेकिन यह सुनिश्चित करने के लिए कि यह उनके माध्यम से शुरू न हो।
  • noswapfile (आप निश्चित रूप से उस आकार की फ़ाइल की प्रतिलिपि नहीं चाहते हैं)
  • bufhidden = अनलोड (जब अन्य फ़ाइल देखी जाए तो मेमोरी को सहेजें)
  • buftype = nowritefile (केवल पढ़ा जाता है)
  • undolevels = -1 (कोई पूर्ववत संभव नहीं)

शायद कोई विकल्प है या दो मुझे याद हैं, लेकिन ये अब तक मेरे _vrc में हैं।


ध्यान दें कि (1) एक प्लगइन है ( vim.org/scripts/script.php?script_id=1506 ) इन विकल्पों में से कई को स्वचालित रूप से चालू करने के लिए जब एक बड़ी फ़ाइल खोली जाती है, और (2) इस कार्यक्रम के साथ भी, इसे खोलते हुए ( एक जोड़े से अधिक जीबी आकार में अभी भी समस्याग्रस्त हो सकते हैं, इसलिए मैं यहां "Ctrl-C" टिप का पालन करने की सलाह देता हूं: stackoverflow.com/a/19795855/1858225
काइल स्ट्रैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.