Belirli satır numaraları arasında bir dizeyi nasıl arayabilirim?


15

Bu son zamanlarda yaşadığım bir problem. Birkaç yüz satırlık bir dosyam var. İki belirli satır numarası arasında bir dizeyi nasıl arayabilirim? Örneğin, 100 ve 325 satır numaraları arasında arama yapmak istiyorum.

Yanıtlar:


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

sonra :147<CR>istediğiniz satıra atlamak için tuşuna basın .

Ayrıca şunları kullanabilirsiniz :ilist:

:100,235il foo<CR>

Bkz :help range, :help :globalve :help :ilist.


5

Belirli satırlar arasında arama yapmanın başka bir yolu daha vardır.

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

Misal:

/%>199l\%<300lgood

Bu 200'den 299'a kadar 'iyi' kalıbını arayacaktır.

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

2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>100 ila 325 arasındaki çizgileri görsel olarak seçin, normalmoda geri dönün .
  • /\v%Vpattern:h /\%Varama aralıklarını son görsel alanla sınırlandırmak için kullanın .

Deseniniz yeni satır içeriyorsa, \%Vgörsel alanda desen sonunu kısıtlamak için başka bir satır eklemeniz gerekir :

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

1

Bazen bir işlev / yöntem içinde belirli bir sembolü aramanız gerekir

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

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

Amacıyla aramak için bde f()sadece:

  • gidin {arasındaf()
  • ile görsel moda gir V
  • f()'%' ile bitmek
  • ':' komutuyla exec satırına gidin.
  • il balmak için komut satırı girişine girdikten sonra:'<,'>il b

Sonra <CR>Alacağınız (gir)

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

Vi ve Vim'e Welcomr ! Bu, romainl'in cevabından önemli ölçüde farklı mı?
D. Ben Knoble

Teşekkürler! İlk olarak, vim için yeni olan, tanımayan %ve görsel moddaki insanların onları faydalı bulabileceğine inanıyorum. İkinci olarak, satır aralığını açıkça girmeye gerek yoktur.
dmytro.poliarush

1
Tamam, o zaman kullanımlarının nasıl alakalı olduğunu veilist
D. Ben Knoble
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.