在Emacs evil-mode中没有正则表达式的字面替换文本

时间:2014-08-11 01:07:27

标签: emacs evil-mode

在vim中,我可以使用:%sno/[abt]//g删除" [abt]"的所有文字。从字面上看(如here所述)。

我在evil-mode尝试了相同的命令,但它抱怨它不理解sno命令,那么我怎样才能在evil-mode中做同样的事情?

2 个答案:

答案 0 :(得分:2)

据我所知,evil没有(但是?)支持“魔术/无魔法”正则表达式选项(实际上,它只是ex功能的一小部分,所以我不要认为%会起作用)。正如@ Ehvince的回答所示,标准Emacs进行替换的方式是使用query-replacequery-replace-regexp。如果你想坚持evil,只需用反斜杠转义方括号:

:s/\[abt\]//g

NB :Emacs中的反斜杠转义通常会让来自其他环境或编程语言的人咬人;有关详细信息,请查看the bottom of this manual node on the backslash

答案 1 :(得分:1)

您可以使用绑定到query-replace的emacs命令M-%

M-% [abt] RET <nothing> RET

然后使用y批准每次出现或使用!批准所有出现。

该文档位于C-h f query-replace

query-replace-regexp绑定到C-M-%

相关问题