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.

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.


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

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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.