странное поведение глобального ключа - PullRequest
0 голосов
/ 28 января 2019

Я попал в файл .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

Если я вхожу в Mx poc, вставляется DOUBLE LOW-9 QUOTATION MARK.Но с этого момента, если я снова введу клавишу F12, кавычка будет вставлена ​​правильно.И это повторяется после перезапуска Emacs.Что-то не так с этим кодом?emacs-версия 26.1

1 Ответ

0 голосов
/ 29 января 2019

Вы связываете клавиши в функциях, поэтому вам нужно сначала запустить функции.Это не рекомендуется.Привязать клавиши вне функций, например:

(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>") "“")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...