有没有办法避免vimscript正则表达式所需的大量逃逸?

Hub*_*bro 1 vim

我有一个工作的vimscript正则表达式,如下所示:

^\s*\(\(module\)\|\(class\)\|\(def\)\|\(it\s\)\|\(describe\s\)\)\s
Run Code Online (Sandbox Code Playgroud)

以下是其他任何语言的外观,例如Python:

^\s*((module)|(class)|(def)|(it\s)|(describe\s))\s
Run Code Online (Sandbox Code Playgroud)

我写了正则表达式,比如一小时的试验和失败.我怎么知道什么需要在vim正则表达式中转义?显然,这两个括号,管道需要转义,但^*没有.

有没有办法避免这种逃避的疯狂?

jth*_*ill 6

是的......你想要"非常神奇"的逃脱:

s/^\v\s*((module)|(class)|(def)|(it\s)|(describe\s))\s/hoooo hah!!!!/g
Run Code Online (Sandbox Code Playgroud)

:help pattern说的确切影响,基本上除了字母数字之外的所有东西都变得神奇.顺便说一句,分公司运营商的最低优先级,我不认为你的不同

s/^\v\s*(module|class|def|it\s|describe\s)\s/yowee!!/g
Run Code Online (Sandbox Code Playgroud)

但可能是我今天早上用完了咖啡.