Come sostituire un personaggio con una nuova riga in Emacs?
Domanda
Sto cercando di sostituire un carattere - diciamo ;
- con una nuova riga usando sostituisci stringa
e / o sostituisci-regexp
in Emacs.
Ho provato i seguenti comandi:
Mx
sostituisci stringa
RET;
RET\ n
Questo sostituirà
;
con 2 caratteri:\n
.Mx
sostituisci-regex
RET;
RET\ n
Questo provoca il seguente errore (mostrato nel minibuffer):
Uso non valido di `\ 'nel testo sostitutivo.
Cosa c'è di sbagliato nell'uso di replace-string
per questa attività? C'è un altro modo per farlo?
Grazie.
Soluzione
Mx sostituisci stringa
RET ;
RET Cq Cj .
C-q per
quoted-insert
,C-j è una nuova riga.
Cheers!
Altri suggerimenti
Sono stati trovati quattro modi per inserire una nuova riga nel minibuffer.
-
C-o
C-q C-j
C-q
12
(12 è il valore ottale di newline)Cx o nella finestra principale, uccidi una nuova riga con Ck , quindi Cx o torna al minibuffer, tiralo con Cy
Non dimenticare che puoi sempre tagliare e incollare nel minibuffer.
Quindi puoi semplicemente copiare un carattere di nuova riga (o qualsiasi stringa) dal tuo buffer, quindi strapparlo quando ti viene richiesto il testo di sostituzione.
Più esplicitamente:
Per sostituire il carattere punto e virgola (;) con una nuova riga, seguire questi esatti passaggi.
- trova il cursore nella parte superiore sinistra del buffer contenente il testo che desideri modificare
- Digita m-x replace-string e premi INVIO
- il mini-buffer mostrerà qualcosa del genere: Sostituisci stringa (impostazione predefinita ^ - >):
- Digita il carattere che desideri sostituire. In questo caso, ; e premi INVIO
- il mini-buffer mostrerà qualcosa del genere: stringa; con:
- Ora esegui C-q C-j
- Tutte le istanze di punto e virgola verranno sostituite da una nuova riga (dalla posizione del cursore alla fine del buffer verrà ora visualizzato)
Aggiungici qualcosa in più rispetto alla spiegazione originale.
Passa alla modalità testo
M-x text-mode
Evidenzia blocco al rientro
Rientro
C+M \
Torna in qualunque modalità ..