就在Emacs邪恶的模式之上,我已经写了一个扩展模式,让我在一个单一的按键插入数学和希腊语Unicode字符.但是代码看起来像这样(数百行):
(define-key evil-unicode-state-map "a" "?")
(define-key evil-unicode-state-map "b" "?")
(define-key evil-unicode-state-map "g" "?")
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种切割所有样板的首选方法?理想情况下,我可以编写如下内容:
(setq evil-unicode-state-map
{"a" "?"
"b" "?"
"g" "?"})
Run Code Online (Sandbox Code Playgroud)
一种方法是:
(setq my-evil-unicode-state-map
'(("a" . "?")
("b" . "?")
("g" . "?")))
(dolist (key-def my-evil-unicode-state-map)
(let ((key (car key-def)) (def (cdr key-def)))
(define-key evil-unicode-state-map key def)))
Run Code Online (Sandbox Code Playgroud)
编辑:(反映伊万安德鲁斯的评论)
如果my-evil-unicode-state-map没有在其他地方使用,
(dolist (key-def
'(("a" . "?")
("b" . "?")
("g" . "?"))))
(define-key evil-unicode-state-map (car key-def) (cdr key-def)))
Run Code Online (Sandbox Code Playgroud)