当前位置:  开发笔记 > 开发工具 > 正文

如何在Emacs中用换行符替换字符?

如何解决《如何在Emacs中用换行符替换字符?》经验,为你挑选了4个好方法。

我正在尝试;使用replace-string和/或replace-regexp在Emacs中使用新行替换字符 - 比如说.

我尝试了以下命令:

M-x replace-string RET ; RET \n

这将取代;2个字符:\n.

M-x replace-regex RET ; RET \n

这会导致以下错误(显示在迷你缓冲区中):

替换文本中使用"\"无效.

使用replace-string此任务有什么问题?还有其他办法吗?

谢谢.



1> Jonathan Ark..:

M-x replace-string RET ; RET C-q C-j.

C-q对于quoted-insert,

C-j 是换行符.

干杯!


`Cj`是一个文字`0x0a`控制代码,而`Ret`是你的引号旁边的键,发送'0x0d`.https://en.wikipedia.org/wiki/C0_and_C1_control_codes
那么为什么``Ret`不会在`Cq`之后工作而不是`Cj`?
Cq实际上是`quote-insert`引用下一个字符.
我认为它实际上是"引用"而不是"引用",如"引用插入".至少就是它在22.1版本上的方式.
注意对于vim用户,在**emacs**中使用`Cj`,而在**vim**中使用`Cm`.
@JonathanArkell这是一个描述*它是如何工作的,但不是*为什么*.在编辑器中,Ret产生0x0a,为什么它应该在quoted-insert中产生0x0d?这没有任何意义.(仅仅因为内部键盘代码是历史原因的0x0d?我们在各地使用关键地图,为什么不在这里完全合理?)

2> 小智..:

我发现有四种方法可以将新行放入迷你缓冲区.

    C-o

    C-q C-j

    C-q 12 (12是换行符的八进制值)

    C-x o到主窗口,杀了一个换行符C-k,然后C-x o回到迷你缓冲区,猛拉它C-y


提及`Co`的+1!与"Cq Cj"相比,一个关键的击球次数减少了.以前没想过要用那个.

3> 小智..:

不要忘记,您可以随时剪切并粘贴到迷你缓冲区中.

因此,您只需从缓冲区中复制换行符(或任何字符串),然后在提示输入替换文本时将其拉出.


对于我不知道键绑定的角色来说,这确实是一个好主意.

4> 小智..:

更明确地说:

要用换行符替换半冒号字符(;),请按照以下确切步骤操作.

    将光标定位在包含要更改的文本的缓冲区的左上角

    输入mx replace-string并按RETURN

    迷你缓冲区将显示如下内容:替换字符串(默认为^ - >):

    输入要替换的字符.在这种情况下, ; 并点击RETURN

    迷你缓冲区将显示如下内容:string; 有:

    现在执行Cq Cj

    所有分号实例都将替换为换行符(从光标位置到缓冲区末尾将出现)

比原来的解释所说的要多得多.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有