vimで指定された文字列で始まる行を検索しますか?


9

私はこのコードスニペットを持っています:

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

コメントされていないipdb行のみが検索されるように、検索クエリを指定するにはどうすればよいですか?

コマンドは次のようになると思います: /import ipdb/(line start flag)

回答:


13

これはどう:

/^[^#]*ipdb

1つ目^は一致を行の先頭にアンカーし、a 以外の[^#]任意の文字に一致し( 指定された文字以外の任意の文字に一致することを意味します)、これを0回以上繰り返します。#^*

詳細については、以下を参照してください。:help /^ :help /[

これはipdb、コメントで始まらないすべての行に一致することに注意してください。

import other_module, ipdb

で始まるものだけを一致させたい場合はimport ipdb、次のように使用できます。

/^\s*import ipdb

ここ^でも、一致を行の先頭にアンカーし、\s空白文字と一致し、*これを0回以上繰り返します。


@niekas、次にとの\s*間に追加/^[^ます。
romainl 2015年

したがって、最後のクエリは次のとおり/^\s*import ipdbです。それがまさに私が欲しかったものです。
niekas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.