我可以在Vim中启用扩展正则表达式支持吗?

Dre*_*ens 43 regex vim command-line

扩展正则表达式的字符非常有用; 有没有办法打开它们,这样我就不必在我的Vim正则表达式中逃脱它们,就像-E我可以传递给grep(1)的标志一样?

Ale*_*lli 49

不要:help magic在VIM,你会看到有四个级别(很神奇,魔术,nomagic,也很nomagic),但只有两个中心的人可以全局设置(默认为神奇,用:set命令,你可以和魔术之间的切换只nomagic); 开始你的RE \v以使其余部分"非常神奇"("除了'0' - '9','a' - 'z','A' - 'Z'和'_'之外的所有ASCII字符都有一个特殊含义") - 但这仅适用于那个特定的RE! - )

  • Brian Carper在这里有一篇关于魔术的好文章http://briancarper.net/blog/vim-regexes-are-awesome (10认同)
  • @Cimbali,Wayback Machine 在 https://web.archive.org/web/20100725091217/http://briancarper.net/blog/448/vim-regexes-are-awesome 有一份副本 (2认同)
  • 如果将 `\v` 与搜索和替换一起使用,请确保将其放在 ** 分隔符之后**:`:%s~\v^(foo)$~\1bar~gc` (2认同)

Ste*_*ski 12

解决方法是重新映射/自动为"非常神奇"的搜索添加前缀:

nnoremap / /\v
vnoremap / /\v
Run Code Online (Sandbox Code Playgroud)