我有.emacs文件:
(defun poc ()
(interactive)
(insert (char-from-name "DOUBLE LOW-9 QUOTATION MARK"))
(global-set-key [f12] 'poc))
(defun konc ()
(interactive)
(insert (char-from-name "LEFT DOUBLE QUOTATION MARK"))
(global-set-key [(shift f12)] 'konc))
输入我得到的F12键
<f12> is undefined
如果我输入M-x poc,则会插入双低9引号。但是从这一刻起,如果我再次输入F12键,引号就会正确插入。 重新启动emacs之后,这种情况会重复。 这段代码有问题吗? emacs版本是26.1
答案 0 :(得分:1)
您要绑定功能中的键,因此需要首先运行功能。不建议这样做。将键绑定到函数外部,如下所示:
(defun poc ()
(interactive)
(insert (char-from-name "DOUBLE LOW-9 QUOTATION MARK")))
(global-set-key (kbd "<f12>") #'poc)
由于这些操作非常简单(只需插入字符),您实际上甚至不需要功能。
(global-set-key (kbd "<f12>") (string (char-from-name "DOUBLE LOW-9 QUOTATION MARK")))
(global-set-key (kbd "S-<f12>") (string (char-from-name "LEFT DOUBLE QUOTATION MARK")))
或者如果您使用类似utf-8的编码(应该使用),则可以将字符直接放在字符串中。
(global-set-key (kbd "<f12>") "„")
(global-set-key (kbd "S-<f12>") "“")