使用参数定义键绑定

igo*_*gon 6 emacs elisp

我想将Cf Cb映射为文件中固定数量的行向前和向后移动.

我这样做了:

(global-set-key (kbd "C-f") 'next-line)
(global-set-key (kbd "C-b") 'previous-line)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在next-line命令之前指定一个参数.我想我应该使用,digit-argument但我无法以正确的方式编写命令.

eve*_*_jr 13

您已将问题更改为如何直接绑定到关键序列

这种结合C-c lC-u 5 C-n

(global-set-key (kbd "C-c l") (kbd "C-u 5 C-n"))
Run Code Online (Sandbox Code Playgroud)


mik*_*yra 7

其中一个可能的替代方案是定义一个新功能:

(defun my-next-line ()
  (interactive)
  (next-line 5))

(global-set-key (kbd "C-f") 'my-next-line)
Run Code Online (Sandbox Code Playgroud)

否则,如果它只是您可以使用键盘完成的事情

M-x name-last-kbd-macro
Run Code Online (Sandbox Code Playgroud)

并将其保存在.emacs文件中

M-x insert-kbd-macro
Run Code Online (Sandbox Code Playgroud)

并让emacs为您实现该功能.它只会得到你在name-last-kbd-macro调用时给出的名字