Emacs使用query-replace替换文本时如何处理换行符

27

我有一个像这样的字符串(由星号分隔):

abc*dddd*fffff*

我需要用换行符替换*,也就是说,结果应该是:

abc
dddd
fffff

我该如何在Emacs中实现这个功能?我尝试了query-replace,但按下enter键并没有达到我想要的效果。

在Emacs中如何做到这一点?我尝试了query-replace命令,但是按下enter键并不能得到我想要的结果。

2个回答

48
请引用回车键:C-q C-j。这里,C-q 字面插入下一个键,而 C-j 则换行。

C-j 产生 ASCII 0x0a (\n, 换行符,换行)。ENTER 键产生 0x0d (\r, 回车符)。谁知道这背后的原因? - maxelost
历史上,控制键(在串行终端和其他字节流协议中)被表示为 ^A= 1,^B= 2等等。因此,^J 等于 10。回车键是(任意的吗?我不知道)与 ^M 或 13 相同。 - nelhage
1
旧帖子,但你所称呼的“ENTER”键实际上是回车键,而数字键盘上的那个才是“ENTER”键。 - Sardtok

12

尝试使用query-replace  enter   *   enter   M-j  enter  !  enter


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接