Come inserire una nuova linea e saltare ad essa, in emacs?


12

È esattamente lo stesso di Eclipse Shift+Enter.

Ad esempio ho un testo:

Hello, *everyone.
I'm Freewind.

Il *nella prima riga è il cursore. Quindi premo un tasto di scelta rapida, diventa:

Hello, everyone.
*
I'm Freewind.

Si noti che esiste una nuova riga nella seconda riga e il cursore si trova nella nuova riga.

Qual è la scorciatoia da tastiera che posso usare?


3
Uso sempre Ce e poi invio.

Risposte:


16

C-e C-m

o

C-e C-j

Entrambi si sposteranno alla fine della riga e aggiungeranno una nuova riga. Anche il secondo rientra.


Posso mappare un tasto per fare questo lavoro, quindi devo solo premere una volta?
Freewind

Questa è una mappatura chiave. Emacs consente di associare i comandi alle sequenze di tasti e la maggior parte dei comandi sono due tasti. È generalmente una cattiva idea associarsi a una chiave poiché la maggior parte delle associazioni di chiave è presa dai fondamenti di emacs.
Ross Patterson,

C-einvoca move-end-of-linee C-minvocanewline
Dror il

10

Per completezza ecco una funzione:

(defun end-of-line-and-indented-new-line ()
  (interactive)
  (end-of-line)
  (newline-and-indent))

(global-set-key (kbd "<S-return>") 'end-of-line-and-indented-new-line)

Grazie, ma come lo uso? Basta mappare un tasto per questa funzione? Posso mappare "Shift-Enter" su di esso?
Freewind

@ Risposta di Freewind aggiornata
Trey Jackson

3
Se si utilizza comment-indent-new-lineinvece, inserirà anche i caratteri di commento appropriati se si è attualmente all'interno di un commento.
phils,

6

Puoi fare qualcosa di simile a una macro di tastiera come questa.

(global-set-key (kbd "<S-return>") "\C-e\C-m")

o addirittura:

(global-set-key (kbd "<S-return>") (kbd "C-e C-m"))

per evitare di usare due diversi tipi di sintassi per i tasti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.