Tìm kiếm các dòng bắt đầu với chuỗi đã cho trong vim?


9

Tôi có đoạn mã này:

# import ipdb; ipdb.set_trace()
def foo():
    ...
    import ipdb; ipdb.set_trace()
    ...
    # import ipdb; ipdb.set_trace()

Làm thế nào tôi nên chỉ định truy vấn tìm kiếm, rằng nó sẽ chỉ tìm thấy các ipdbdòng không bị thiếu?

Tôi đoán lệnh có thể trông giống như: /import ipdb/(line start flag)

Câu trả lời:


13

Còn cái này thì sao:

/^[^#]*ipdb

Đầu tiên ^sẽ neo trận đấu vào đầu dòng, [^#]sẽ khớp với bất kỳ ký tự nào ngoại trừ một #( ^phương tiện để khớp với bất kỳ ký tự nào ngoại trừ các ký tự đã cho) và *lặp lại 0 lần này trở lên.

Xem: để biết thêm thông tin.:help /^ :help /[

Lưu ý rằng điều này sẽ khớp với tất cả các dòng ipdbkhông bắt đầu bằng một nhận xét, bao gồm:

import other_module, ipdb

Nếu bạn chỉ muốn khớp với những người bắt đầu bằng import ipdb, bạn có thể sử dụng:

/^\s*import ipdb

Ở đây ^sẽ một lần nữa neo trận đấu vào đầu dòng, \ssẽ khớp với bất kỳ ký tự khoảng trắng nào và *lặp lại 0 lần này trở lên.


@niekas, sau đó thêm \s*giữa /^[^.
romainl

Vì vậy, truy vấn cuối cùng là : /^\s*import ipdb. Đó chính xác là những gì tôi muốn.
niekas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.