2013-11-01 22 views
10

Tôi đang cố gắng tìm kiếm tệp ruby ​​và tìm tất cả các phương thức (trước khi tự động điền chúng sau này). Trong vim, tôi sử dụng sau regexp:tìm kiếm nhiều tham số không tham lam trong vim

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

Tuy nhiên mặc dù tôi sử dụng "{-}", nó chọn nội dung toàn bộ hồ sơ của.

+1

I don' t hiểu những gì bạn muốn phù hợp. Làm thế nào về nếu có một điều kiện 'if ... end' bên trong một hàm? – Birei

+1

có, tôi sẽ sửa đổi regexp sau đó cho phù hợp (như thêm dấu tích cực cho một def hoặc smth như thế). những gì tôi cần ngay bây giờ là cách để tìm kiếm nó không tham lam –

Trả lời

11

sử dụng \_. để bao gồm ký tự mới vào số . chung.

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

Trong trường hợp của tôi, '' '/ \ vdef \ _. \ {-} end''' làm việc. – raratiru

5

Thử sau regex.

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

.* là thủ phạm trong trường hợp của bạn

+0

bạn có thể thả '. *' Sau 'def'. '\ vdef (\ n |.) {-} end' cũng sẽ hoạt động. – iruvar

+0

@ 1_CR Cảm ơn bạn đã chỉ ra. Cập nhật ans của tôi. – jkshah

5

Trong phiên bản của tôi về Vim, bạn cần phải thoát khỏi {, cũng như sử dụng \_. như câu trả lời khác đã nói:

/def\_.\{-}end 
Các vấn đề liên quan