यदि मैं बड़ी फ़ाइलों पर vi का उपयोग करता हूं तो क्या होगा?


16

यद्यपि हमें निर्देश नहीं दिया गया था, मेरे एक सहकर्मी ने एक बड़ी पाठ फ़ाइल (सर्वर। 3.5 जीबी) देखने के लिए vi का उपयोग किया। इसने / var / tmp को भरा और सर्वर पर कुछ समस्याएँ पैदा हुईं।

इसकी क्या वजह रही? हमें बड़ी फ़ाइलों के लिए vi का उपयोग क्यों नहीं करना चाहिए?


3
vi(या vimउस मामले के लिए) बड़ी फ़ाइलों पर धीमी गति से लानत है और कई लाइन समाप्त न होने पर भी अनुपयोगी हो सकती है। इसके अलावा, फ़ाइल को मेमोरी में फिट करने की आवश्यकता है। lessबड़ी फ़ाइलों के लिए उपयोग करें , यह लॉग फ़ाइलों को पढ़ने / देखने के लिए बहुत तेज़ और अक्सर पर्याप्त है।
मार्को

@ मार्को इसे उत्तर के रूप में क्यों नहीं रखा गया?
बर्नहार्ड

1
क्योंकि यह सवाल का जवाब नहीं है, लेकिन एक टिप्पणी है, क्यूसिटॉन है "यह क्या कारण है? हमें अन्य फ़ाइलों के लिए उपयोग क्यों नहीं करना चाहिए?"
कीवी डेके

मेरे जवाब के साथ टिप्पणी देखें।
--13

जवाबों:


7

Vi संपादन बफ़र के लिए डिफ़ॉल्ट निर्देशिका (/ var / tmp) को उस फ़ाइल के आकार के दोगुने के बराबर जगह चाहिए, जिसके साथ आप काम कर रहे हैं, क्योंकि vi बफर हेरफेर के लिए अतिरिक्त लाइनों का उपयोग करता है।

यदि / var / tmp निर्देशिका में संपादन बफर के लिए पर्याप्त स्थान नहीं है (जैसे, आप एक बड़ी फ़ाइल के साथ काम कर रहे हैं, या सिस्टम अंतरिक्ष से बाहर चल रहा है

कुछ समय के लिए, आपको निम्न त्रुटि संदेश भी प्राप्त होगा

Not enough space in /var/tmp.

आप इसे कैसे ठीक करें, इसके बारे में यहां पढ़ सकते हैं: http://kb.iu.edu/data/akqv.html


"vi संपादन बफ़र को उस फ़ाइल के आकार के दोगुने के बराबर जगह चाहिए, जिसके साथ आप काम कर रहे हैं" स्रोत?
एट्रिपैथी

1
बहुत पहले मैंने kb.iu.edu/data/akqv.html से पढ़ा है । इसलिए मैंने इसे आपको दिया
r gavedʒɑ

20

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

कहा कि, वहाँ जैसे प्लगइन हैं vim-largefile कि बदलाव खास सेटिंग बड़ी फ़ाइलों के साथ अधिक कुशल होने के लिए, लेकिन अंत में vimकभी नहीं होगा तेज़ जब आप इसे में कई Gibs फेंक देते हैं।

लब्बोलुआब यह है, vimबड़ी फ़ाइलों पर उपयोग न करें । यदि आप बड़ी फ़ाइलों को देखने (संपादित करने के विपरीत) का उपयोग करना चाहते हैं less। यदि आप एक पैटर्न की खोज करना चाहते हैं, तो एक खोज पैटर्न शुरू करने के लिए एक स्लैश का उपयोग करें:

/<pattern>  # forward search
?<pattern>  # backward search

यदि आप आउटपुट को फ़िल्टर करना चाहते हैं तो एक एम्परसेंड का उपयोग करें:

&<pattern>

फिर निरंतर आउटपुट का उपयोग करना शुरू करें shift-f। आप निरंतर आउटपुट डिस्प्ले से बाहर निकल सकते हैं ctrl-cऔर अपने फ़िल्टर पैटर्न को परिष्कृत या रद्द कर सकते हैं या खोज शुरू कर सकते हैं।

बड़ी फ़ाइलों का उपयोग करने के लिए जैसे उपकरण sed, वे कुशल हैं और इस उद्देश्य के लिए डिज़ाइन किए गए हैं।

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