Jak wstawić nową linię i przejść do niej emacsem?

12

To dokładnie to samo, co zaćmienie Shift+Enter.

Np. Mam jakiś tekst:

Hello, *everyone.
I'm Freewind.

*W pierwszej linii jest kursor. Następnie naciskam jakiś skrót klawiszowy, staje się on:

Hello, everyone.
*
I'm Freewind.

Zauważ, że w drugiej linii jest nowa linia, a kursor znajduje się w nowej linii.

Jakiego skrótu klawiszowego mogę użyć?

Freewind
źródło
3
Zawsze używam Ce, a następnie wchodzę.

Odpowiedzi:

16

C-e C-m

lub

C-e C-j

Oba przejdą na koniec linii i dodadzą nową linię. Drugi też będzie wcięciem.

Ray Vega
źródło
Czy mogę zmapować klucz do wykonania tej pracy, więc muszę tylko raz nacisnąć?
Freewind
To jest kluczowe mapowanie. Emacs pozwala na wiązanie poleceń z sekwencjami klawiszy, a większość poleceń to dwa klawisze. Generalnie złym pomysłem jest powiązanie z jednym kluczem, ponieważ większość powiązań z jednym kluczem jest pobierana przez podstawy emacsa.
Ross Patterson
C-einwokuje move-end-of-linei C-minwokujenewline
Dror
10

Dla kompletności tutaj jest funkcja:

(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
źródło
Dziękuję, ale jak z niego korzystać? Wystarczy zmapować klucz do tej funkcji? Czy mogę zmapować na nim „Shift-Enter”?
Freewind
@ Odpowiedź Freewind zaktualizowana
Trey Jackson,
3
Jeśli użyjesz comment-indent-new-linezamiast tego, wstawi również odpowiednie znaki komentarza, jeśli obecnie jesteś w komentarzu.
phils
7

Możesz zrobić coś podobnego do makra klawiatury takiego jak to.

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

lub rzeczywiście:

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

aby uniknąć używania dwóch różnych rodzajów składni kluczy.

kindahero
źródło