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

我试图用Emacs中的replace-string和/或replace-regexp替换一个字符-说; -用一个新行。

我尝试了以下命令:

  • m x replace-string 受潮湿腐烂 ; 受潮湿腐烂 \n

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

  • m x replace-regex 受潮湿腐烂 ; 受潮湿腐烂 \n

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

    在替换文本中无效地使用"。

在这个任务中使用replace-string有什么问题?还有别的办法吗?

118371 次浏览

__abc2 __abc0 __abc3 __abc1 __abc3 __abc5。

  • C-q for quoted-insert

  • C-j是换行符。

不要忘记,您总是可以剪切和粘贴到迷你缓冲区中。

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

更明确:

要将分号字符(;)替换为换行符,请遵循以下确切的步骤。

  1. 将光标定位在缓冲区的左上方,其中包含您想要更改的文本

  2. 输入m-x replace-string并命中返回

  3. mini-buffer将显示如下内容: 替换字符串(默认^ ->): < / p >
  4. 输入要替换的字符。在这种情况下,; 返回

  5. mini-buffer将显示如下内容:

    字符串;:

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

  7. 所有分号的实例将被替换为换行符(现在将显示从游标位置到缓冲区末尾的位置)

有一点比原来的解释说。

切换到文本模式:

M-x text-mode

突出显示要缩进的块。

缩进:Ctrl + </kbd>

切换回任何模式…

我发现了四种将换行符放入迷你缓冲区的方法。

  1. < kbd >切断< / kbd >

  2. < kbd > C-q C-j < / kbd >

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

  4. C-x o到主窗口,用C-k杀死换行符,然后C-x o返回到小缓冲区,用C-y将其拉起

内联只是:

C-M-S-%(如果绑定键仍然是默认值),然后 replace-string J . < / p >