VIM: उबंटू पर सटीक लाइन में कैसे जाएं


87

मैं viUbuntu 12.10 पर उपयोग कर रहा हूं । कुछ फाइलें काफी लंबी होती हैं, इसलिए जब मैं फाइल के बीच में जाना चाहता हूं, तो मुझे पेज को डाउन या स्क्रॉल करना होगा।

क्या एक सटीक लाइन नंबर पर जाने के लिए VIM शॉर्टकट है?


@vim विशेषज्ञ। क्या यह वास्तव में Ubuntu- / bash- / Linux-specific (ओपी टैग के अनुसार) है? मैं बहुत अधिक उपयोग नहीं कर रहा हूं, लेकिन मेरे उपयोगों के लिए मैंने उबंटू / सेंटो / स्यूस / विंडोज में थोड़ा अंतर नहीं देखा है।
अलेक्जेंडर मालाखोव

जवाबों:


143
:150

vi में आपको लाइन 150 तक ले जाएगा

:1500

vi में आपको लाइन 1500 तक ले जाएगा

टिप्पणियों के अनुसार आप कोशिश करना चाह सकते हैं

150G

150 की पंक्ति में आने के लिए। जो कम महत्वपूर्ण स्ट्रोक है, :150Enter यदि आप सुनिश्चित नहीं हैं कि आप किस लाइन पर हैं

 :set nu!

ध्यान दें:

यदि आप हमेशा अपने विम प्रोफ़ाइल को संपादित करने पर विचार करना चाहते हैं। सबसे अधिक बार

vi ~/.vimrc

और जोड़

:set nu! 

और लिखना और छोड़ना

:wq
#or you could use :x

यह vi के बाहर किया जा सकता है। उदाहरण के लिए, यदि मैं एक पाठ फ़ाइल में लाइन 5000 हटाना चाहता हूं तो मैं एक स्क्रिप्टिंग भाषा का उपयोग कर सकता हूं। उदाहरण के लिए, sed का उपयोग करना निम्नलिखित होगा

sed -i '5000d;' inputFile.txt

10 से 20 को हटाने के लिए यह होगा

sed -i '10,20d;' inputFile.txt

सूचना -i जगह में फ़ाइल को संपादित करेगा। -I के बिना यह गोटो स्टडआउट होगा। कोशिश करो। आप किसी फ़ाइल में stdout रीडायरेक्ट कर सकते हैं

sed '5001,$d;' inputFile.txt >> appenedFile.txt

यह आपके लिए यहां बहुत कुछ हो सकता है। यह लाइन 5001 से $ को हटा देता है। $ फ़ाइल के अंत में होने के साथ। >> एक फ़ाइल के लिए संलग्न करेंगे। जहाँ के रूप में> एक ​​नई फ़ाइल बनाता है।

यदि आप उत्सुक हैं कि एक फ़ाइल में कितनी लाइनें हैं, तो आप टाइप करना चाहते हैं wc -l inputFile.txt

इसमें से कुछ भयानक रूप से तुच्छ लग सकते हैं, लेकिन अगर आप किसी फ़ाइल को 50,000 पंक्तियों के साथ संपादित करने की कोशिश कर रहे हैं, तो यह vi को खोलने और ट्रैवर्स के लिए एक मीठा मिनट लग सकता है। यदि आप जानते हैं कि आप अंतिम पंक्ति को हटाना चाहते हैं तो आप sed का उपयोग कर सकते हैं और इसे कुछ समय में कर सकते हैं।

sed फाइल के अंदर भी खोज और बदल सकता है। लेकिन शायद awk, perl, या python भी एक व्यवहार्य समाधान हो सकता है।

लेकिन कुल मिलाकर, आप vi पर एक अच्छा ट्यूटोरियल खोजने के लिए वान कर सकते हैं। हजारों मौजूद हैं। मैं गूगल से सलाह लूंगा। शायद अपने आप को एक वीआईएम धोखा दे।


कोई बात नहीं, मैंने अपने उत्तर पर थोड़ा विस्तार किया। सौभाग्य
matchew

2
इसके अलावा, vim में आप टाइप कर सकते हैं: n50% और फाइल के बीच में जाएं।
एरिक फोर्टिस

1
सामान्य मोड में, के 150Gरूप में ही करता है :150। यह तेज़ नहीं है लेकिन याद रखना आसान हो सकता है।
रोमेल

@romainl 150gg भी यही करता है। दोनों वास्तव में तेजी से हैं: 150 <cr>
रैंडी मॉरिस

@ रंडी मॉरिस - हां, यह तेज है, मैं ध्यान रखना भूल गया <CR>
रोमेल

14

अन्य विम टिप्स: कमांड मोड में

  • H स्क्रीन के शीर्ष पर जाता है
  • M स्क्रीन के बीच में जाता है
  • L स्क्रीन के निचले भाग में जाता है
  • gg पहली पंक्ति में जाता है
  • G अंतिम पंक्ति में जाता है

7

कुछ मिनट लें और इस दस्तावेज़ को पढ़ना शुरू करें । यह विशेष रूप से कॉन्फ़िगर फ़ाइल को संपादित करने में दक्षता के लिए लंबे समय में आपको पुरस्कृत करता है।


लिंक अब मृत हो गया है
Google Search

6

खुले टर्मिनल से, एक बाश शेल में, बस अपनी फ़ाइल को चलाकर संपादित करें:

$ vi +N yourfile

Nलाइन नंबर कहां है।

देखने के लिए ( moreया less?):

$ less +N yourfile
$ more +N yourfile

संकेत का +मतलब शुरू में चलाना है । तो अगर कमांड केवल एक संख्या है, तो vi, lessऔर more, लाइन नंबर के रूप में इस पर कूद जाएगा ।

लेकिन आप /regexकिसी विशिष्ट स्ट्रिंग या रेगेक्स की पहली घटना को खोजने के लिए भी उपयोग कर सकते हैं :

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...

3

एक और सलाह: चूंकि आप नई हैं, इसलिए दौड़ना vimtutorबहुत मददगार हो सकता है।


6
क्या यह सिर्फ एक टिप्पणी नहीं होनी चाहिए क्योंकि यह विशिष्ट प्रश्न को संबोधित नहीं करती है?
ब्रायन रासमुसेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.