我有以下代码段:
table3
以上代码段无效。
现在我知道这可行:
(setq evil-string-inflection-bind "g~")
(define-key evil-normal-state-map (kbd evil-string-inflection-bind) 'evil-operator-string-inflection)
为什么第一个代码段不起作用而第二个代码段却起作用?乍一看,它们应该相等。
有没有一种方法可以将参数传递给(define-key evil-normal-state-map (kbd "g~") 'evil-operator-string-inflection)
函数,或者它有某种特殊性?
答案 0 :(得分:0)
我认为您所说的问题可能与您的问题无关。听起来evil
特有。当然,我们可以看到,将字符串文字传递给kbd
与传递具有相同值的变量之间没有根本区别:
ELISP> emacs-version
"26.1"
ELISP> (setq map1 (make-sparse-keymap))
ELISP> (define-key map1 (kbd "g~") 'evil-operator-string-inflection)
ELISP> map1
(keymap
(103 keymap
(126 . evil-operator-string-inflection)))
ELISP> (setq map2 (make-sparse-keymap))
ELISP> (setq evil-string-inflection-bind "g~")
ELISP> (define-key map2 (kbd evil-string-inflection-bind) 'evil-operator-string-inflection)
ELISP> map2
(keymap
(103 keymap
(126 . evil-operator-string-inflection)))