回答:
行の最初の非空白文字に一致するショートカットはありません。次のように、自分でパターンを作成する必要があります。
^\s*restofpattern
マッチに空白を含めたくない場合は、次のようなゼロ幅のアサーションを使用する必要があります。
\(^\s*\)\@<=restofpattern
正確ではありませんが、少なくとも仕事は完了しています。
最初の非空白文字に一致させるには、\S
通常どおりに使用します。
^
vimの正規表現で使用する場合、たとえ空白が含まれていても、実際の行の先頭と一致します。
たとえば、次の行はスペースで始まります。
<- there's a space there you can't see :)
次のvimコマンドは、先頭のスペースを削除します。
:%s/^ //
結果は次のとおりです。
<- there's a space there you can't see :)
そのため、たとえコマンドがそうでなくても、正規表現は期待どおりに動作します。
^
(すべての正気の正規表現の実装のような)演算子は、それが空白であっても、最初の文字と一致します。
\S
では、最初の非空白文字と一致するようなものを使用します。
\S
空白以外の文字と一致します。別の言い方をすれば、Vimにこれに対するゼロ幅の省略形があるのではないかと思っています^\W*\S
。