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ć?


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.


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)

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.