Jak mogę wyszukać ciąg między określonymi numerami linii?

15

To był problem, który ostatnio miałem. Mam plik zawierający kilkaset wierszy tekstu. Jak mogę wyszukać ciąg między dwoma konkretnymi numerami linii? Na przykład chcę wyszukać między numerami linii 100 i 325.

Seth
źródło

Odpowiedzi:

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

następnie naciśnij, :147<CR>aby przejść do żądanej linii.

Możesz także użyć :ilist:

:100,235il foo<CR>

Zobacz :help range, :help :globala :help :ilist.

romainl
źródło
5

Istnieje inny sposób wyszukiwania między poszczególnymi liniami.

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

Przykład:

/%>199l\%<300lgood

Spowoduje to wyszukanie od linii 200 do 299 wzorca „dobry”.

%>199l - l is for line, >199 denotes the lines greater than 199
SibiCoder
źródło
2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>wizualnie wybierz linie od 100 do 325, wróć do normaltrybu.
  • /\v%VpatternUżyj, :h /\%Vaby ograniczyć zakresy wyszukiwania do ostatniego obszaru wizualnego.

Jeśli twój wzór zawiera znak nowej linii, musisz dodać kolejny, \%Vaby ograniczyć koniec wzoru w obszarze wizualnym:

100GV325G<esc>
/\v%Vpattern%V
  • :h /\%V
dedowsdi
źródło
1

Czasami musisz wyszukać dany symbol w funkcji / metodzie

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

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

Aby wyszukać bw f()tylko:

  • przejdź do {zf()
  • wejdź w tryb wizualny za pomocą V
  • idź do końca f()z „%”
  • przejdź do linii poleceń za pomocą polecenia „:”.
  • gdy znajdziesz się w wierszu poleceń, il baby uzyskać :'<,'>il b

Po <CR>(enter) dostaniesz

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue
dmytro.poliarush
źródło
Witaj w Vi i Vimie ! Czym różni się to zasadniczo od odpowiedzi Romainla?
D. Ben Knoble,
Dzięki! Po pierwsze, wierzę, że ludzie, którzy dopiero zaczynają vim i nie znają %trybu wizualnego, mogą je uznać za przydatne. Po drugie, nie ma potrzeby jawnego wprowadzania zakresu wierszy.
dmytro.poliarush
1
Ok, to zasugerowałbym wyjaśnienie, w jaki sposób ich użycie jest istotne i klucze doilist
D. Ben Knoble