无法匹配Vim中的一个或多个空格

Léo*_* 준영 43 vim

我希望在Vim的行开头有匹配空格

PseudoCode我想做什么

^( )*
Run Code Online (Sandbox Code Playgroud)

我从手册中了解了以下内容

notation        meaning             equivalent  decimal value(s)        
-----------------------------------------------------------------------

<Space>         space                            32     *space* 
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用十进制值32.

你怎么能匹配Vim中的一个或多个空格?

Luc*_*röm 79

打字

/^ \+
Run Code Online (Sandbox Code Playgroud)

在命令模式下,将匹配行开头的一个或多个空格字符.

打字

/^\s\+
Run Code Online (Sandbox Code Playgroud)

在命令模式下,将在一行的开头匹配一个或多个空格字符(制表符等以及空格).


use*_*400 13

顺便说一下,如果您使用该hlsearch选项并且输入后整个文本亮起/ *而不仅仅是空格,请不要感到惊讶.那是因为零空间可以匹配任何地方!

因此,匹配零个或多个任何东西只有在与其他东西结合使用时才有用.

澄清问题后增加:

要匹配行开头的一个或多个空格,请执行以下操作:

/^\s\+
Run Code Online (Sandbox Code Playgroud)

看到:

:help whitespace
:help /\+
Run Code Online (Sandbox Code Playgroud)


gac*_*rux 7

如果我理解正确..

/ * 将匹配0或更多空格

/ {0,n} 将匹配0到n个空格(其中n是数字)

要从行首开始匹配1个或多个空格:

/^ \+
Run Code Online (Sandbox Code Playgroud)

  • @Masi:你能澄清一下你的意思吗?gacrux的答案完全符合您的要求(匹配零个或多个空格).它与"#"字符不匹配,但它将匹配它们两侧的零空格(以及任何其他字符). (2认同)

pax*_*blo 6

Vim行开头的空格:

/^  *
Run Code Online (Sandbox Code Playgroud)

那是:

  • '/' 用于搜索.
  • '^' 开始行.
  • ' ' 至少一个空间.
  • ' *' 之后为零或更多空格.


And*_*ndy 5

如果您想要匹配任何类型的空白(无论是空格还是制表符),以下正则表达式都适用

^[\s]*
Run Code Online (Sandbox Code Playgroud)

^匹配行的开头
[\s]/[\t]匹配空格或制表符(两者似乎都有效,但根据 vim 文档,您应该使用[\s]
*提供重复,0 或更多。

当然使用/其他人提到的搜索。