在 Vim 正常模式下,该0
命令会将您带到行的第一列,并^
带您到行的逻辑开头(例如第一个非空白字符)。在正则表达式世界中,^
匹配行上的第一个字符,无论是否有空白。Vim 是否有一个行为类似于其 '^' 命令的模式 - 匹配行的逻辑开头?
答案1
没有快捷方式可以匹配一行中的第一个非空白字符,您必须自己构建模式,例如:
^\s*restofpattern
如果您不想在匹配中包含空格,则必须使用零宽度断言,例如:
\(^\s*\)\@<=restofpattern
虽然不算漂亮,但至少可以完成工作。
答案2
为了匹配第一个非-空白字符,您只需\S
像平常一样使用即可。
如果您^
在 vim 中使用正则表达式,它将匹配行的实际开头,即使它包含空格。
例如,此行以空格开头:
<- there's a space there you can't see :)
此 vim 命令将删除前导空格:
:%s/^ //
导致以下结果:
<- there's a space there you can't see :)
因此,即使命令没有按预期运行,正则表达式也会按预期运行。