最近我从 Sublime 切换到了 Evil 模式的 Emacs。配置后,我试图有效地使用它,但我找不到在 Emacs 中使用反向引用的方法。手册上说我必须使用 \#,所以我使用 \1,但它总是空的(也试过 0,但 Emacs 不接受它)。
例如我想在单词 Lorem 后面添加括号:
Lorem ipsum dolor sit amet
因此输入、、、、、之后,<C-M-%>
我得到了以下信息:Lorem
<RET>
(\1)
<RET>
<y>
() ipsum dolor sit amet
在 Sublime 中我将使用Lorem
as find 和($0)
as replace 来获得这个:
(Lorem) ipsum dolor sit amet
我也试过视觉替代类固醇但它有相同的行为。
答案1
您应该使用替换(\&)
而不是(\1)
。\1
代表\(...\)
正则表达式中的第一组。
使用 Mx describe-key CM-% 可获得的帮助中对此进行了描述:
在 中
TO-STRING
,\&
代表与 整个 匹配的内容REGEXP
,而\N
(其中 N 是数字) 代表与\(...\)
REGEXP 中的第 N 个(从 1 开始)匹配的内容。\(...\)
组从 1 开始计数。