Comment insérer une nouvelle ligne et y accéder, dans emacs?

12

C'est exactement la même chose que l'éclipse Shift+Enter.

Par exemple, j'ai un texte:

Hello, *everyone.
I'm Freewind.

Le *dans la première ligne est le curseur. Ensuite, j'appuie sur un raccourci clavier, il devient:

Hello, everyone.
*
I'm Freewind.

Notez qu'il y a une nouvelle ligne dans la deuxième ligne et le curseur est dans la nouvelle ligne.

Quel raccourci clavier puis-je utiliser?

Freewind
la source
3
J'utilise toujours Ce puis j'entre.

Réponses:

16

C-e C-m

ou

C-e C-j

Les deux se déplaceront à la fin de la ligne et ajouteront une nouvelle ligne. Le second sera également en retrait.

Ray Vega
la source
Puis-je mapper une touche pour faire ce travail, il me suffit donc d'appuyer une fois?
Freewind le
C'est une cartographie clé. Emacs permet de lier des commandes à des séquences de touches et la plupart des commandes sont deux touches. C'est généralement une mauvaise idée de se lier à une clé, car la plupart des liaisons à une clé sont prises par les principes fondamentaux d'emacs.
Ross Patterson
C-einvoque move-end-of-lineet C-minvoquenewline
Dror
10

Pour être complet, voici une fonction:

(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)
phimuemue
la source
Merci, mais comment l'utiliser? Il suffit de mapper une clé pour cette fonction Puis-je mapper "Shift-Enter" sur celui-ci?
Freewind
@Freewind réponse mise à jour
Trey Jackson
3
Si vous utilisez à la comment-indent-new-lineplace, il insérera également les caractères de commentaire appropriés si vous êtes actuellement dans un commentaire.
phils
6

Vous pouvez créer quelque chose qui ressemble à une macro de clavier comme celle-ci.

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

ou bien:

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

pour éviter d'utiliser deux types de syntaxe différents pour les clés.

kindahero
la source