2009-03-04 18 views
227

Próbuję zastąpić znak - powiedzmy ; - nową linią, używając replace-string i/lub replace-regexp w Emacs.Jak zamienić znak na znak nowej linii w Emacs?

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

  • M-xreplace-stringRET;RET\n

    ten zastąpi ; z 2 znaków: \n.

  • M-xreplace-regexRET;RET\n

    Wynika to w następujący błąd (jak pokazano w minibuforze):

    Nieprawidłowe użycie `\” w tekście zastępczej.

Co z użyciem replace-string do tego zadania? Czy jest jakiś inny sposób na zrobienie tego?

Dzięki.

Odpowiedz

340

M xreplace-stringRET;RETC C P-j.

  • C-Q do quoted-insert,

  • C-j jest nowej linii.

Cheers!

+1

C-q jest naprawdę 'cytat-insert' który cytuje następny znak. –

+2

Uważam, że jest właściwie "cytowany", a nie "cytat", jak w "quoted-insert". Przynajmniej tak jest w wersji 22.1. –

+4

Dlaczego więc 'Ret' nie działa zamiast' C-j' po 'C-q'? – Cactus

22

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

Można więc po prostu skopiować znak nowego wiersza (lub dowolny ciąg znaków) z bufora, a następnie pociągnąć go, gdy zostanie wyświetlony monit o zastąpienie tekstu.

+2

To naprawdę dobry pomysł dla postaci, których nie znam. . – Lei

7

Ściślej:

Aby wymienić semi dwukropek (;) z nową linią, wykonaj następujące kroki dokładnie.

  1. zlokalizować kursor w lewym górnym rogu buforze zawierającym tekst, który chcesz zmienić
  2. Rodzaj mx zastąpić sznurek i naciśnij Enter
  3. mini-bufora wyświetli coś takiego: Wymień String (default^- >):
  4. Wpisz znak, który chcesz zastąpić. W tym przypadku, ; i naciśnij RETURN
  5. mini-bufor wyświetli coś takiego: ciąg; w:
  6. teraz wykonać Cq Cj
  7. Wszystkie przypadki średnikiem zostanie zastąpiona nową linię (w miejscu kursora w celu buforu pojawi się)

bit więcej, niż oryginalne wyjaśnienie mówi.

2

Przełącz do trybu tekstowego

M-x text-mode 

blok Highlight wcięcia

wcięcie

C+M \ 

powrócić do jakiegokolwiek trybu ..

52

Istnieją cztery sposoby mam znaleźć nowy wiersz do minibufora.

  1. Co

  2. Cq Cj

  3. Cq12 (12 ósemkową wartość nowej linii)

  4. Cx o głównego okna , zabij a nowalinia z C-k, następnie C-x o powrotem do minibufora, szarpać go C-y

+6

+1 za dodanie słowa "C-o"!Jedno mniej kluczowe uderzenie w porównaniu z C-q C-j. Nie pomyślał o użyciu tego wcześniej. – itsjeyd

+0

Dzięki za wersję 4! Przydatne, jeśli masz odbicia C-o i C-q. –

+0

Wielkie dzięki. Czy możesz wyjaśnić, dlaczego działa C-o, a C-q C-j nie? –

Powiązane problemy