Jak zastąpić znak nową linią w Emacsie?

Próbuję zastąpić znak-powiedzmy ; - nową linią używając replace-string i/lub replace-regexp w Emacsie.

Wypróbowałem następujące polecenia:

  • M-x replace-string RET ; RET \n

    To zastąpi {[0] } dwoma znakami: \n.

  • M-x replace-regex RET ; RET \n

    Powoduje to następujący błąd (pokazany w minibuffer): {]}

    Nieprawidłowe użycie ` \ ' w tekście zastępczym.

Co jest złego w używaniu replace-string do tego zadania? Jest na to jakiś inny sposób?

Dzięki.
 238
Author: itsjeyd, 2009-03-05

5 answers

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

  • C-q dla quoted-insert,

  • C-j jest nową linią.

Zdrówko!
 358
Author: Jonathan Arkell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 09:48:21

Znalazłem cztery sposoby na dodanie nowej linii do minibuffera.

  1. C-o

  2. C-q C-j

  3. C-q 12 (12 jest ósemkową wartością newline)

  4. C-x o do głównego okna, Zabij nową linię za pomocą C-k , a następnie C-x o z powrotem do minibuffera, przeciągnij ją za pomocą C-y

 58
Author: slipmthgoose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 09:53:38

Nie zapominaj, że zawsze możesz wyciąć i wkleić do minibuffera.

Więc możesz po prostu skopiować znak nowej linii (lub dowolny ciąg znaków) z bufora, a następnie przeciągnąć go, gdy pojawi się monit o zastępczy tekst.

 22
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-05 12:02:19

Bardziej wyraźnie:

Aby zastąpić znak dwukropka (;) znakiem nowej linii, wykonaj dokładnie te kroki.

  1. zlokalizuj kursor w lewym górnym rogu bufora zawierającego tekst, który chcesz zmienić
  2. Type m - x replace-string and hit RETURN
  3. mini-bufor wyświetli coś takiego: Zastąp łańcuch (domyślnie ^ ->):
  4. wpisz znak, który chcesz zastąpić. W tym przypadku, ; i hit RETURN
  5. mini-bufor wyświetli coś w rodzaju to: string; with:
  6. wykonaj teraz C-q C-j
  7. wszystkie wystąpienia dwukropka zostaną zastąpione nową linią (od położenia kursora do końca bufora)

Trochę więcej niż mówi oryginalne Wyjaśnienie.

 7
Author: afc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 06:54:15

Przełącz na tryb tekstowy

M-x text-mode

Zaznacz blok do wcięcia

Tiret

C+M \
Przełącz z powrotem na dowolny tryb..
 2
Author: rebelbass,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-18 04:24:48