Я пытаюсь заменить символ - скажем ;
- новой строкой, используя replace-string
и / или replace-regexp
в Emacs.
Я пробовал следующие команды:
M-x
replace-string
RET;
RET\n
Это заменит
;
2 символов:\n
.M-x
replace-regex
RET;
RET\n
Это приводит к следующей ошибке (отображается в минибуфере):
Неправильное использование `\ 'в тексте замены.
Что не так с использованием replace-string
для этой задачи? Есть ли другой способ сделать это?
Спасибо.
quote-insert
который цитирует следующий символ.C-j
это буквенный0x0a
контрольный код, в отличие отRet
которого ключ рядом с вашей цитатой и отправляет0x0d
. en.wikipedia.org/wiki/C0_and_C1_control_codesC-j
в emacs , аC-m
в vim .Я нашел четыре способа ввода новой строки в минибуфер.
C-o
C-q C-j
C-q
12
(12 - восьмеричное значение новой строки)C-x oв главное окно, убейте новую строку с помощью C-k, затем C-x oвернитесь к минибуферу, дерните егоC-y
источник
C-o
! На одну клавишу меньше по сравнению сC-q C-j
. Не думал об этом раньше.C-o
не перемещает точку после вставки новой строки в минибуфер, поэтому вам все равно нужно нажимать клавишу со стрелкой вправо, если вы хотите вставить что-то после новой строки в строке замены.C-o
будет вводить новуюC-q C-j
строку в главном окне при использовании поиска, а также вводить новую строку в минибуфере.C-o
работает с запросом - заменить хотя.Не забывайте, что вы всегда можете вырезать и вставить в минибуфер.
Таким образом, вы можете просто скопировать символ новой строки (или любую строку) из буфера, а затем восстановить его при появлении запроса на замену текста.
источник
Более подробно:
Чтобы заменить точку с запятой (;) символом новой строки, выполните следующие точные шаги.
Немного больше, чем говорит оригинальное объяснение.
источник
Переключиться в текстовый режим
Выделить блок для отступа
индент
Вернитесь в любой режим.
источник
встроенный просто:
C-M-S-%
(если ключи привязки по-прежнему по умолчанию), чемreplace-string
^Jисточник