2011-02-01 13 views
14

ho l'una stringa come questo (separtred da asterisco):Emacs query-replace con a capo

abc*dddd*fffff* 

ho bisogno di sostituire il * con una nuova riga. Il risultato dovrebbe essere:

abc 
dddd 
fffff 

Come posso farlo in Emacs? Ho provato query-replace ma premendo immettere non fa quello che voglio.

risposta

27

Riportare la chiave di immissione: C-q C-j. Lì, C-q inserisce letteralmente la chiave successiva e C-j dà newline.

+0

'C-j' produce ASCII 0x0a (\ n, newline, linefeed). Il tasto INVIO produce 0x0d (\ r, carriage-return). Qualcuno che conosce lo sfondo per questo? – maxelost

+0

Storicamente, le chiavi di controllo erano rappresentate (su terminali seriali e altri protocolli di flusso di byte) come '^ A' = 1,'^B' = 2 e così via. E così '^ J' è 10. ENTER è stato (arbitrariamente? Non so) lo stesso di'^M', o 13. – nelhage

+1

Vecchio post, ma la chiave che stai chiamando ENTER è in realtà chiamata la chiave di ritorno a capo, mentre il tasto INVIO è quello sul tastierino numerico. – Sardtok

6

Prova query-replace     immettere     *     immettere     M-j     immettere    !   immettere