web-dev-qa-db-ja.com

vimに^のようなパターンはありますか?

Vimの通常モードでは、0コマンドは、行の最初の列に移動し、^は、論理的な行の先頭に移動します(例:最初の非空白文字)。正規表現の世界では、^は、行の最初の文字、空白かどうかに一致します。 Vimには「^」コマンドのように動作するパターンがありますか?行の論理的な開始に一致しますか?

21
Michael

行の最初の空白以外の文字に一致するショートカットはありません。次のようにパターンを自分で作成する必要があります。

^\s*restofpattern

一致に空白を含めたくない場合は、次のように幅ゼロのアサーションを使用する必要があります。

\(^\s*\)\@<=restofpattern

正確ではありませんが、少なくとも仕事は完了です。

17
Karl Bielefeldt

最初のnon-whitespace文字を一致させるには、通常のように\Sを使用します。


Vimの正規表現で^を使用すると、空白が含まれていても、実際の行頭に一致します。

たとえば、次の行はスペースで始まります。

 <- there's a space there you can't see :)

このvimコマンドは、先頭のスペースを削除します。

:%s/^ //

次の結果になります:

<- there's a space there you can't see :)

そのため、コマンドが動作しない場合でも、正規表現は期待どおりに動作します。

7
Michael Hampton