Wie füge ich eine neue Zeile ein und springe in Emacs dorthin?

12

Es ist genau das gleiche wie eine Sonnenfinsternis Shift+Enter.

Ich habe zB einen Text:

Hello, *everyone.
I'm Freewind.

Die *in der ersten Zeile ist der Cursor. Dann drücke ich eine Tastenkombination, es wird:

Hello, everyone.
*
I'm Freewind.

Beachten Sie, dass sich in der zweiten Zeile eine neue Zeile befindet und sich der Cursor in der neuen Zeile befindet.

Welche Tastenkombination kann ich verwenden?

Freewind
quelle
3
Ich benutze immer Ce und gehe dann hinein.

Antworten:

16

C-e C-m

oder

C-e C-j

Beide bewegen sich zum Ende der Zeile und fügen eine neue Zeile hinzu. Der zweite wird ebenfalls eingerückt.

Ray Vega
quelle
Kann ich eine Taste für diesen Job zuordnen, sodass ich nur einmal drücken muss?
Freewind
Das ist eine Tastenbelegung. Emacs erlaubt das Binden von Befehlen an Tastenfolgen und die meisten Befehle sind zwei Tasten. Es ist im Allgemeinen eine schlechte Idee, an einen Schlüssel zu binden, da die meisten der Ein-Schlüssel-Bindungen von den Emacs-Grundlagen übernommen werden.
Ross Patterson
C-eruft auf move-end-of-lineund C-mruft aufnewline
Dror
10

Der Vollständigkeit halber ist hier eine Funktion:

(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
quelle
Danke, aber wie verwende ich es? Ordnen Sie dieser Funktion einfach einen Schlüssel zu? Kann ich "Shift-Enter" zuordnen?
Freewind
@Freewind Antwort aktualisiert
Trey Jackson
3
Wenn Sie comment-indent-new-linestattdessen verwenden, werden auch die entsprechenden Kommentarzeichen eingefügt, wenn Sie sich gerade in einem Kommentar befinden.
Phils
6

Sie können so etwas wie ein Tastaturmakro erstellen.

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

oder in der Tat:

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

Um zu vermeiden, dass zwei verschiedene Arten von Syntax für Schlüssel verwendet werden.

kindahero
quelle