Сначала я думал, что это ошибка в Emacs.Я был очень удивлен, что никто не сталкивался с этим раньше.
Вот обходной путь, который вы можете использовать:
(dolist (abcc '("C-a" "C-b"))
(global-unset-key (read-kbd-macro abcc)))
Что происходит, когда kbd - это макрос, который оборачивает функцию, однако это не такоцените его параметр явно.Таким образом, символ abcc передается прямо в функцию.
Немного подумав (и прочитав документы).Это на самом деле ошибка пользователя.
Строка документа для kbd
четко указывает, что она должна использоваться для строковых констант.
Так что kbd
следует использовать, когда требуется только внутренний ключпредставление появиться в скомпилированном байт-коде.например,
(define-key foo-mode-map (kbd "C-a") 'foo)
Но read-kbd-macro
следует использовать, когда вы хотите, чтобы аргумент был оценен.