Как вы перемещаете указатель вверх или вниз несколько строк с помощью Emacs?

StackOverflow https://stackoverflow.com/questions/2657568

Вопрос

Я могу переместить мой указатель вверх и вниз по одной линии с моей клавишей со стрелкой просто в Emacs, поэтому я хотел бы переопределить CN и CP для перемещения вверх и вниз по 5 строкам за раз.

Я только начинаю научиться использовать Emacs, и ELISP очень инопланет для меня. Я пытался использовать GNU EMACS LISP Ссылка, но я не мог найти, как связать нажатие клавиши к нескольким командам.

Вот что я имею до сих пор (концентрируясь на определении движения):

(global-set-key "\C-p"  '(loop for i in '(1 2 3 4 5) do ('previous-line))) 

Но это приносит сообщение об ошибке при попадании в CP, «неправильный тип аргумента».

Какие-либо предложения?

Спасибо!

Это было полезно?

Решение

Эти функции (я верю next-line и previous-line) принять дополнительные аргументы с CU, поэтому я думаю, что (next-line 5) сделал бы то, что вы хотите.

Редактировать: так что я просто пытался, и это было бы

(global-set-key (kbd "C-n")
    (lambda () (interactive) (next-line 5)))

И то же самое с CP и previous-line.

(Советы не просто писать код в текстуарее с телефонной клавиатурой ^^)

Другие советы

Согласно предупреждению в моем эмацевом конфиге, и комментарий от Peter Ajtai, я предлагаю версию, использующую forward-line от моего init.el

(global-set-key (kbd "C-n")
    (lambda () (interactive) (forward-line  5)))
(global-set-key (kbd "C-p")
    (lambda () (interactive) (forward-line -5)))

Конечно, есть также forward-char, работает так же, просто в другом направлении.

Единственное, что пропало, это complex-forward который принимает сложный номер в качестве аргумента, и может использоваться для навигации во всех 4 направлениях: P

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top