Как вставить новую строку и перейти к ней, в Emacs?

12

Это точно так же, как затмение Shift+Enter.

Например, у меня есть текст:

Hello, *everyone.
I'm Freewind.

В *первой строке находится курсор. Затем я нажимаю комбинацию клавиш, она становится:

Hello, everyone.
*
I'm Freewind.

Обратите внимание, что во второй строке есть новая строка, а курсор находится в новой строке.

Какую комбинацию клавиш можно использовать?

Freewind
источник
3
Я всегда использую Се, а затем входить.

Ответы:

16

C-e C-m

или

C-e C-j

Оба переместятся в конец строки и добавят новую строку. Второй будет также отступ.

Рэй Вега
источник
Могу ли я сопоставить ключ, чтобы выполнить эту работу, поэтому мне просто нужно нажать один раз?
Freewind
Это отображение ключей. Emacs позволяет связывать команды с последовательностями клавиш, и большинство команд - это две клавиши. Связывать с одним ключом, как правило, плохая идея, так как большинство привязок одного ключа основаны на emacs.
Росс Паттерсон
C-eвызывает move-end-of-lineи C-mвызываетnewline
Дрор
10

Для полноты здесь есть функция:

(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
источник
Спасибо, но как мне это использовать? Просто сопоставить ключ с этой функцией? Могу ли я привязать к нему «Shift-Enter»?
Freewind
@Freewind ответ обновлен
Трей Джексон
3
Если вы используете comment-indent-new-lineвместо этого, он также будет вставлять соответствующие символы комментария, если вы в настоящее время внутри комментария.
Филс
6

Вы можете сделать что-то похожее на макрос клавиатуры, как это.

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

или действительно:

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

чтобы избежать использования двух разных типов синтаксиса для ключей.

kindahero
источник