Ответ 1
Сообщение об ошибке сообщает, какое имя Emacs использует для ключа. Вы можете передать эту строку в функцию kbd
, чтобы связать ее.
(global-set-key (kbd "<C-dead-circumflex>") 'next-line)
В настоящее время я перевязываю почти все мои привязки Emacs, чтобы соответствовать моей новой раскладке клавиатуры, bépo, французскому эквиваленту dvorak.
У меня возникли проблемы с отображением моего ключа ^
. Клавиша ^
является мертвой клавишей, но не на уровне материала.
Я хотел бы иметь возможность отображать C-^
, но в настоящее время он не работает. Потому что "dead-circumflex" и "circumflex" - это два разных ключа.
Если я это сделаю:
(global-set-key "C-^" 'next-line)
Затем нажатие клавиши управления клавишей "^" выполняет следующие действия:
<C-dead-circumflex> is undefined
У нас есть доказательства emacs, которые видят мертвые-circumflex. Но я все равно не могу его отобразить.
Я знаю, что могу делать
(global-set-key "^" 'next-line)
и что он будет работать, дважды нажав ^
, но это не обходное решение, которое я ищу.
Сообщение об ошибке сообщает, какое имя Emacs использует для ключа. Вы можете передать эту строку в функцию kbd
, чтобы связать ее.
(global-set-key (kbd "<C-dead-circumflex>") 'next-line)
У меня была такая же досадная ошибка, но только при использовании графического интерфейса emacs, а не из терминала. Проблема с предлагаемым решением заключается в том, что ^ не является единственным персонажем, который не работает. Для меня это было как минимум "и".
Из этой темы: https://bugzilla.redhat.com/show_bug.cgi?id=918740 Я обнаружил, что изменение XMODIFIERS с "@im = ibus" на "" решило проблему. Во время поиска, где XMODIFIERS, где я настроен, я затронул следующую проблему: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1125944 Оказывается, удалив ~/.config/ibus/bus, который решает эту проблему, также решает проблему в emacs с мертвыми ключами
rm -rf ~/.config/ibus/bus
Добавьте в свой ~/.emacs
следующее:
(require 'iso-transl)
Это устраняет проблему с undefined мертвыми ключами.