emacs 26 中的无效函数但在 emacs 25 中有效
invalid-function in emacs 26 but works in emacs 25
这适用于 emacs 25:
(setq custom-keymap (copy-keymap global-map))
(defun custom-def (keys func &optional file &optional global-p)
(define-key custom-keymap keys func)
(if global-p (global-set-key keys func))
(if file (autoload func file "[custom autoload]" t)))
(custom-def [delete] 'delete-char)
但是当我在 emacs 26 中调用 custom-def
时,出现 invalid-function
错误。我将它隔离到 &optional
参数。我删除了这两个参数并且 custom-def
有效。
那么 25 和 26 之间发生了什么变化?我在这里错过了什么?我想要在 emacs 25 中工作的灵活的 ARGLIST。
在参数列表中只使用一次 optional
- 以下参数都是可选的 [其他关键字也可以跟在后面 - 参见 info(elisp) Functions]。
(defun custom-def (keys func &optional file global-p)
;; ...
)
[我不确定发生了什么变化 - 也许添加了重复参数检查?]
这适用于 emacs 25:
(setq custom-keymap (copy-keymap global-map))
(defun custom-def (keys func &optional file &optional global-p)
(define-key custom-keymap keys func)
(if global-p (global-set-key keys func))
(if file (autoload func file "[custom autoload]" t)))
(custom-def [delete] 'delete-char)
但是当我在 emacs 26 中调用 custom-def
时,出现 invalid-function
错误。我将它隔离到 &optional
参数。我删除了这两个参数并且 custom-def
有效。
那么 25 和 26 之间发生了什么变化?我在这里错过了什么?我想要在 emacs 25 中工作的灵活的 ARGLIST。
在参数列表中只使用一次 optional
- 以下参数都是可选的 [其他关键字也可以跟在后面 - 参见 info(elisp) Functions]。
(defun custom-def (keys func &optional file global-p)
;; ...
)
[我不确定发生了什么变化 - 也许添加了重复参数检查?]