关于使用replace-string查找替换的疑问

最近使用 Emacs 的 M-x replace-string 进行查找替换, 有个问题特别困惑,在此请教各位指点一二。

c++-mode 下我有下面的的三行文字:

a();
b();
c();

我想替换为

a()
{

}

b()
{

}

c()
{

}

我使用 M-x replace-string,把;替换为

{

}

我使用方式为:

结果却是:

a()
{
}

b();
c();

只能正确替换第一行

并没有问题;

Peek 2018-03-12 23-20

一直按y 或者直接按 !

replace-match-maybe-edit: Match data clobbered by buffer modification hooks

我的提示这个, 看来应该是被某个hook打断了

你的 replace-string 用法没问题,你的写法等于:

(replace-string ";" "\n{\n}\n")

至于你那里出现的状况,尽量自己先搞清楚如何重现,比如说从 Emacs -Q 也有问题吗?

多谢, 用emacs -q启动确实没问