Как заменить символ новой строкой в Emacs?

я пытаюсь заменить символ - сказать ; - с новой строкой с помощью replace-string и/или replace-regexp в Emacs.

я попробовал следующие команды:

  • M-x replace-string RET ; RET n

    это заменить ; с 2 символов: n.

  • M-x replace-regex RET ; RET n

    это приводит к следующей ошибке (показано в минибуфере):

    недопустимое использование `' в текст замены.

что не так с использованием replace-string для этой задачи? Есть ли другой способ сделать это?

спасибо.

5 ответов


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

  • C-q на quoted-insert,

  • C-j новая строка.

Ура!


существует четыре способа, которые я нашел, чтобы поместить строку в буфер.

  1. C-o

  2. C-q C-j

  3. C-q 12 (12-восьмеричное значение новой строки)

  4. C-x o в Главное окно, убить строку с C-k, потом C-x o назад к minibuffer, дерните его с C-y


Не забывайте, что вы всегда можете вырезать и вставить в минибуфере.

таким образом, вы можете просто скопировать символ новой строки (или любую строку) из буфера, а затем дернуть его, когда будет предложено заменить текст.


более подробно:

чтобы заменить символ с запятой (;) на новую строку, выполните следующие действия.

  1. найдите курсор в левом верхнем углу буфера, содержащего текст, который вы хотите изменить
  2. введите M-x replace-string и нажмите RETURN
  3. мини-буфере появится что-то вроде этого: Заменить строку (по умолчанию ^ -> ):
  4. введите символ, который вы хотите заменить. В этом деле, ; и нажмите RETURN
  5. в мини-буфер будет отображать что-то вроде этого: string; with:
  6. теперь выполните C-q C-j
  7. все экземпляры двоеточия будут заменены новой строкой (от расположения курсора до конца буфера теперь появится)

немного больше, чем говорит оригинальное объяснение.


переключиться в текстовый режим

M-x text-mode

выделите блок для отступа

абзац

C+M \

переключиться в любой режим..