我已经使用了6个月优秀的Vim文本编辑器。
最有趣的是Vim内置了出色的正则表达式支持。
为了在这里少提问,我想更好地理解正则表达式 :)
我尝试了Regex coach、Espresso和其他正则表达式辅助应用程序,但我发现即使它们在这些应用程序中起作用,也经常无法在VIM中正常工作。
Vim使用什么样的正则表达式?是否有任何辅助应用程序可以为Vim构建正则表达式命令?
vim
使用它自己的语法风格。以下是手册上的说明:
如果您想要更好(更严谨)的解释,请参阅《精通正则表达式》中的“传统NFA”。Vim的正则表达式在功能上最类似于Perl。它们之间的区别主要在于表示法。
:h magic
以获取有关Vim可以处理反斜杠的不同方式的信息。 - Herbert Sitz:h magic
。 - ewhVim有几种正则表达式模式,其中之一是very magic
,它非常类似于传统的正则表达式。只需在前面放置\v
,您就不必转义太多字符。
:%s/\v.+([a-z]+)/\1/g
。这将会将一行中直到第一个字母序列之前的任何内容替换为仅包含字母的内容。 - undefinedjava.util.regex
、Python的re
模块以及在Ruby和JavaScript中发现的正则表达式都是PCRE(每个都有轻微的差异)。rematchpcre
选项或[[ … -pcre-match … ]]
、具有特定USE标志和--perl-regexp
/-P
选项的zsh,以及grep)。Python 和 JavaScript 没有使用它,很可能 Java 也没有。我敢打赌,在支持的转义序列(例如 \p{}
、\x{}
、\cx
、\X
、\N
等)方面,你会看到主要差异。此外,\Q…\E
也不常见。这些被 PCRE 和 Perl 支持,但 Python 或 JavaScript 并不支持(除了 \x{}
和 \cx
)。 - ZyX
+perl
编译了 Vim,你可以通过:perldo s/search/replace/g
命令来使用 Perl 语法进行搜索和替换。 - reem