vim 中是否有类似 ^ 的模式?

vim 中是否有类似 ^ 的模式?

在 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 :)

因此,即使命令没有按预期运行,正则表达式也会按预期运行。

相关内容