Как заменить символ новой строкой в ​​Emacs? - PullRequest
254 голосов
/ 05 марта 2009

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

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

  • М-х replace-string RET ; RET \n

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

  • М-х replace-regex RET ; RET \n

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

    Неправильное использование `\ 'в тексте замены.

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

Спасибо.

Ответы [ 5 ]

387 голосов
/ 05 марта 2009

М-х replace-string RET ; RET C-q C-j .

  • C-q для quoted-insert,

  • C-j является новой строкой.

Ура!

65 голосов
/ 17 марта 2014

Я нашел четыре способа ввода новой строки в минибуфер.

  1. C-о

  2. C-q C-j

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

  4. Cx o в главном окне, убить новую строку с помощью Ck , затем Cx o обратно в минибуфер, вернуть его с помощью Cy

22 голосов
/ 05 марта 2009

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

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

8 голосов
/ 02 августа 2012

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

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

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

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

2 голосов
/ 18 февраля 2014

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

M-x text-mode

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

Отступ

C+M \

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...