2013-11-01 11 views
10

Próbuję przeszukać plik ruby ​​i znaleźć wszystkie metody (przed autorejestrowaniem ich później). w vim, używam następujących regexp:Nie-zachłanne wyszukiwanie wielowierszowe w vim

/\vdef.*(\n.*){-}end 

Jednak mimo że używam "{-}", to wybiera zawartość całego pliku.

+1

I don” t zrozumieć, co chcesz dopasować. Co powiesz na warunek 'if ... end' w funkcji? – Birei

+1

Tak, zmienię odpowiednio wyrażenie regularne później (np. Dodaj pozytywny uprzedzający dla innego def lub czegoś podobnego). to, czego teraz potrzebuję, to sposób na nieagresywne przeszukiwanie. –

Odpowiedz

11

używa \_. do włączenia znaku nowego wiersza do wspólnego ..

/\vdef\_.{-}end 
+2

W moim przypadku zadziałało ''/\ vdef \ _. \ {-} end''''. – raratiru

5

Spróbuj skorzystać z wyrażenia regularnego.

/\vdef(\n|.){-}end 

.* był winowajcą w przypadku

+0

możesz upuścić '. *' Po 'def'. '\ vdef (\ n |.) {-} koniec' działałby równie dobrze. – iruvar

+0

@ 1_CR Dzięki za wskazanie. Zaktualizowano moje ans. – jkshah

5

W mojej wersji Vima, trzeba uciec {, jak również za pomocą \_. jak inne odpowiedzi powiedział:

/def\_.\{-}end 
Powiązane problemy