312

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

我尝试了以下命令:

  • M-x replace-string RET ; RET \n

    这将替换;为两个字符:\n.

  • M-x replace-regex RET ; RET \n

    这会导致以下错误(显示在 minibuffer 中):

    在替换文本中使用无效的 `'。

replace-string用于此任务有什么问题?还有另一种方法吗?

4

6 回答 6

477

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

  • C-q对于quoted-insert,

  • C-j是换行符。

于 2009-03-04T23:52:48.513 回答
87

我发现有四种方法可以将换行符放入迷你缓冲区。

  1. C-o

  2. C-q C-j

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

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

于 2014-03-16T21:58:32.023 回答
27

不要忘记您可以随时剪切并粘贴到 minibuffer 中。

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

于 2009-03-05T12:02:19.947 回答
11

更明确地说:

要将分号字符 (;) 替换为换行符,请按照以下确切步骤操作。

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

  2. 输入m-x替换字符串并点击Return

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

  4. 输入要替换的字符。在这种情况下,; 并击中Return

  5. 迷你缓冲区将显示如下内容:

    细绳 ; 和:

  6. 现在执行C-q C-j

  7. 分号的所有实例将被替换一个换行符(从光标位置到缓冲区末尾现在将出现)

它比原来的解释说的还要多。

于 2012-08-01T22:25:08.920 回答
2

切换到文本模式:

M-x text-mode

突出显示要缩进的块。

缩进:Ctrl+ M</kbd>

切换回任何模式...

于 2014-02-18T04:24:48.527 回答
0

仅内联:

C-M-S-%(如果绑定键仍然是默认值)然后 replace-string ^J.

于 2019-10-11T04:05:55.240 回答