Как заменить символ на новую строку в Emacs?
Вопрос
Я пытаюсь заменить персонажа - скажем ;
- с новой строкой , использующей replace-string
и/или replace-regexp
в Emacs.
Я попробовал следующие команды:
М-х
replace-string
РЕТ;
РЕТ\n
Это заменит
;
с 2 символами:\n
.М-х
replace-regex
РЕТ;
РЕТ\n
Это приводит к следующей ошибке (показанной в минибуфере):
Недопустимое использование `\' в тексте замены.
Что плохого в использовании replace-string
для этой задачи?Есть ли какой-нибудь другой способ сделать это?
Спасибо.
Решение
М-х replace-string
РЕТ ;
РЕТ C-q C-j.
C-q для
quoted-insert
,Си-джей это новая строка.
Ваше здоровье!
Другие советы
Я нашел четыре способа поместить новую строку в минибуфер.
C-o
C-q C-j
C-q
12
(12 - восьмеричное значение новой строки)C-x o в главном окне завершите перевод строки с помощью К-к, тогда C-x o вернитесь к минибуферу, дерните его с C-y
Не забывайте, что вы всегда можете вырезать и вставить в минибуфер.
Таким образом, вы можете просто скопировать символ новой строки (или любую строку) из вашего буфера, а затем выдернуть его, когда будет предложено заменить текст.
Более явно:
Чтобы заменить символ запятой (;) на новую строку, выполните в точности следующие действия.
- установите курсор в левом верхнем углу буфера, содержащего текст, который вы хотите изменить
- Введите m-x replace-string и нажмите RETURN
- мини-буфер будет отображать что-то вроде этого:Заменить строку (по умолчанию ^ -> ):
- Введите символ, который вы хотите заменить.В данном случае, ;и нажмите кнопку RETURN (ВОЗВРАТ)
- мини-буфер будет отображать что-то вроде этого:строка ;с:
- Теперь выполните C-q C-j
- Все экземпляры точки с запятой будут заменены новой строкой (теперь будет отображаться от местоположения курсора до конца буфера).
Это немного больше, чем говорится в первоначальном объяснении.
Переключиться в текстовый режим
M-x text-mode
Выделите блок для отступа
Отступ
C+M \
Переключитесь обратно в любой режим..