-2
特定のパターンに対して、現在のドキュメントを先頭から検索するマクロ/関数が必要です。コメントアウトされていない最初の行で停止します。このvimのスクリプトの例についてはVim、ドキュメントヘッダ内で検索する
:
それは、もしラインで停止し、それはそうでないパターンとはfalseを発見した場合はtrueを返します。
すべてのお役に立ちました!
特定のパターンに対して、現在のドキュメントを先頭から検索するマクロ/関数が必要です。コメントアウトされていない最初の行で停止します。このvimのスクリプトの例についてはVim、ドキュメントヘッダ内で検索する
:
それは、もしラインで停止し、それはそうでないパターンとはfalseを発見した場合はtrueを返します。
すべてのお役に立ちました!
あなたのパターンは文字「e」としましょう。
コメントアウトが、Eが含まれていない行を検索するには:これはライン(^
)の開始が続いていないことを確認するために、負の先読み(\@!
)を使用しています
/^\%(\s*"\)\@!.*e
コメントの先頭(空白と二重引用符\s*"
)で始まり、その後に「e」(.*e
)が続きます。 \%(
と\)
は、囲まれたパターンを、他の演算子(ネガティブ先読みなど)が単位として操作できるアトムにします。
正規表現はかなり常に同じであるmatch()
:echo match(getline(line('.')), '^\%(\s*"\)\@!.*e') >= 0 ? 'true' : 'false'
を使用し、現在の行が一致するかどうかを確認するには:g
:g/^\%(\s*"\)\@!.*e/echo "found one"
を使用し、一致する行でコマンドを実行するには、疑問がありますマッチするラインで何をしたいですか?
「コメントしていない最初の試合で止まる」という意味ですか?または、最初のコメントアウトされていない行だけを検索したいですか? –
@PrinceGoulash:彼は、ファイルの先頭のコメント領域であるヘッダーを検索し、最初の非コメント行まで(そして自然に除外する)ことを意味します。 –
ところで、@Filip、あなたが何かを試したことの表示がない関数を求めているので、あなたがダウンボックスを取得している理由があります。スタックオーバーフローは、コードを提供するのではなく、コードの問題を解決するためのものです。 –