Wie kann ich nach einer Zeichenfolge zwischen bestimmten Zeilennummern suchen?

15

Dies ist ein Problem, das ich vor kurzem hatte. Ich habe eine Datei mit mehreren hundert Textzeilen. Wie kann ich nach einer Zeichenfolge zwischen zwei bestimmten Zeilennummern suchen? Zum Beispiel möchte ich zwischen den Zeilennummern 100 und 325 suchen.

Seth
quelle

Antworten:

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

Drücken Sie dann :147<CR>, um zur gewünschten Zeile zu springen.

Sie können auch verwenden :ilist:

:100,235il foo<CR>

Siehe :help range, :help :globalund :help :ilist.

romainl
quelle
5

Es gibt eine andere Möglichkeit, zwischen bestimmten Zeilen zu suchen.

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

Beispiel:

/%>199l\%<300lgood

Dadurch wird von Zeile 200 bis 299 nach dem Muster 'gut' gesucht.

%>199l - l is for line, >199 denotes the lines greater than 199
SibiCoder
quelle
2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>Wählen Sie visuell Linien von 100 bis 325 aus und kehren Sie in den normalModus zurück.
  • /\v%VpatternVerwenden Sie :h /\%Vdiese Option, um die Suchbereiche auf den letzten sichtbaren Bereich zu beschränken.

Wenn Ihr Muster einen Zeilenvorschub enthält, müssen Sie einen weiteren hinzufügen \%V, um das Musterende im visuellen Bereich einzuschränken:

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

Manchmal müssen Sie innerhalb einer Funktion / Methode nach einem bestimmten Symbol suchen

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

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

Um zu suchen bin f()nur:

  • gehe zu {vonf()
  • Mit in den visuellen Modus wechseln V
  • gehe zum Ende von f()mit '%'
  • Gehe mit ':' in die Exec-Zeile.
  • wenn Sie in der Befehlszeile eingegeben werden il bzu erhalten :'<,'>il b

Nach dem <CR>Eintreten bekommen Sie

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue
dmytro.poliarush
quelle
Willkommen bei Vi und Vim ! Wie unterscheidet sich das wesentlich von Romainls Antwort?
D. Ben Knoble
Vielen Dank! Erstens glaube ich, dass Leute, die noch nicht mit Vim %und Visual Mode vertraut sind, sie nützlich finden können. Zweitens muss der Zeilenbereich nicht explizit eingegeben werden.
dmytro.poliarush
1
Ok, dann würde ich vorschlagen, zu erklären, wie ihre Verwendung relevant ist und wie sie ilist
D. Ben Knoble