vim:无法匹配制表符后面的空白

  • 本文关键字:空白 制表符 vim vim
  • 更新时间 :
  • 英文 :


我有这样的文本(1或0个选项卡+行开头的多个空格):

(tab)   There are a tab and 4 whitespaces before me.    // line 1
(tab)     There are a tab and 6 whitespaces before me.  // line 2
       There are 6 whitespaces before me.               // line 3
   There are 4 whitespaces before me.                   // line 4   

当我使用^[ts]s*时,只有第1、2行匹配,第3、4行不匹配,为什么?

(当我使用^s*时,第3行和第4行可以匹配。)

谢谢!

事实证明,您不能使用s来匹配[]中的空白。只需使用s中进行匹配。

这很有趣。我不知道为什么[]不能在[]括号内工作。也许是因为s定义了显式字符,而s是不明确的(它可以代表多个字符)。换句话说,t代表任何空白,包括一个选项卡(^[t ]s*)。但是,如果在这种情况下显式指定了一个空间(s),它将起作用。

注意到[][:blank:]中不起作用,或者您可以使用CCD_16字符类:

^[[:blank:]]+

最新更新