Vimの通常モードでは、0
コマンドは、行の最初の列に移動し、^
は、論理的な行の先頭に移動します(例:最初の非空白文字)。正規表現の世界では、^
は、行の最初の文字、空白かどうかに一致します。 Vimには「^」コマンドのように動作するパターンがありますか?行の論理的な開始に一致しますか?
行の最初の空白以外の文字に一致するショートカットはありません。次のようにパターンを自分で作成する必要があります。
^\s*restofpattern
一致に空白を含めたくない場合は、次のように幅ゼロのアサーションを使用する必要があります。
\(^\s*\)\@<=restofpattern
正確ではありませんが、少なくとも仕事は完了です。
最初のnon-whitespace文字を一致させるには、通常のように\S
を使用します。
Vimの正規表現で^
を使用すると、空白が含まれていても、実際の行頭に一致します。
たとえば、次の行はスペースで始まります。
<- there's a space there you can't see :)
このvimコマンドは、先頭のスペースを削除します。
:%s/^ //
次の結果になります:
<- there's a space there you can't see :)
そのため、コマンドが動作しない場合でも、正規表現は期待どおりに動作します。