मैं कुछ लाइन नंबरों के बीच स्ट्रिंग की खोज कैसे कर सकता हूं?


15

यह एक समस्या है जो मैंने हाल ही में की थी। मेरे पास पाठ की कई सौ पंक्तियों वाली एक फ़ाइल है। मैं दो विशिष्ट लाइन नंबरों के बीच स्ट्रिंग की खोज कैसे कर सकता हूं? उदाहरण के लिए मैं लाइन नंबर 100 और 325 के बीच खोजना चाहता हूं।

जवाबों:


7
:100,235g/foo/#<CR>

फिर :147<CR>वांछित लाइन पर कूदने के लिए दबाएं ।

आप यह भी उपयोग कर सकते हैं :ilist:

:100,235il foo<CR>

देखें :help range, :help :globalऔर :help :ilist


5

विशेष लाइनों के बीच खोज करने का एक और तरीका है।

/%>{linenumber}l\%<{linenumber}{pattern}

उदाहरण:

/%>199l\%<300lgood

यह पैटर्न 'अच्छा' के लिए लाइन 200 से 299 तक खोज करेगा।

%>199l - l is for line, >199 denotes the lines greater than 199

2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>नेत्रहीन 100 से 325 तक लाइनों का चयन करें, normalमोड पर लौटें ।
  • /\v%Vpattern:h /\%Vखोज श्रेणियों को अंतिम दृश्य क्षेत्र तक सीमित करने के लिए उपयोग करें।

यदि आपके पैटर्न में नई रेखा है, तो आपको \%Vदृश्य क्षेत्र में पैटर्न अंत को प्रतिबंधित करने के लिए एक और जोड़ना होगा :

100GV325G<esc>
/\v%Vpattern%V
  • :h /\%V

1

कभी-कभी आपको किसी फ़ंक्शन / विधि के भीतर दिए गए प्रतीक की खोज करने की आवश्यकता होती है

  void f(bool b)
  {
    b;
    b;
  }

  void g(bool b)
  {
    b;  
    b;  
    b;  
    b;  
  }

आदेश में के लिए खोज करने bमें f()केवल:

  • करने के लिए जाने {कीf()
  • के साथ दृश्य मोड दर्ज करें V
  • f()'%' के साथ समाप्त होता है
  • ':' कमांड के साथ लाइन निष्पादित करें।
  • एक बार जब आप il bपाने के लिए कमांड लाइन इनपुट में होंगे :'<,'>il b

<CR>(दर्ज) करने के बाद आपको मिलेगा

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue

Vi और विम का स्वागत ! यह रोमैनिल के उत्तर से काफी अलग कैसे है?
डी। बेन नोबल

धन्यवाद! सबसे पहले, मेरा मानना ​​है कि नए लोगों को विम %और दृश्य विधा से परिचित नहीं है और उन्हें उपयोगी पा सकते हैं। दूसरे, लाइनों की सीमा को स्पष्ट रूप से इनपुट करने की आवश्यकता नहीं है।
dmytro.poliarush

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