Pet*_*r.O 7 keyboard-shortcuts emacs
我想为end-of-line+
函数创建一个键绑定并将值传递-1
给 i。该函数声明为:
下面的第一个片段有效(没有 arg)。但是其他尝试(使用 arg)失败了......我无法找到使用 args 进行键绑定的示例。这样做的正确方法是什么?
(global-set-key (kbd "C-s-E") 'end-of-line+) ;; Okay!
(global-set-key (kbd "C-s-E") 'end-of-line+ -1) ;; Fails
(global-set-key (kbd "C-s-E") 'end-of-line+ '-1) ;; Fails
(global-set-key (kbd "C-s-E") '(end-of-line+ -1)) ;; Fails
Run Code Online (Sandbox Code Playgroud)
这个想法只是构造一个新函数来表达您想要的自定义行为(并将键绑定到它)。
with lambda
("anonymous", in place) 或 with defun
(在这种情况下,您给它一个名称,您可以使用该名称来引用它)。
要定义交互式“命令”,您需要(interactive)
在正文前加上。
例如:
... (lambda() (interactive) (end-of-line+ -1)) ...
Run Code Online (Sandbox Code Playgroud)
或者
(defun my-end-of-line ()
"Invoke end-of-line with -1."
(interactive)
(end-of-line+ -1))
Run Code Online (Sandbox Code Playgroud)