У меня есть клавиатура, которая по какой-то необъяснимой причине имеет клавишу, которая отправляет символ датского доллара в OS X - §
. При сдвиге отправляет символ плюс / минус - ±
.
Возможно ли в Emacs увидеть §
ключ и преобразовать его в Hyper или Super? Поэтому, если я удерживаю эту §
клавишу и нажимаю f
, она активируется H-f
в Emacs.
Я пробовал следующее, которое не работает:
(define-key key-translation-map (kbd "§") (kbd "<Hyper>"))
Он просто говорит <Hyper> is undefined
о нажатии клавиши и вообще не действует как модификатор.
Это также не работает:
(define-key key-translation-map (kbd "§") "<Hyper>")
это просто превращает §
ключ в <
ключ.
key-bindings
keymap
Мэтт Дарлинг
источник
источник
Ответы:
Короткая версия : в терминах Emacs мне действительно нужны были ключевые аккорды .
@Malabarba и @XinUmbralis кажутся правы - Emacs не позволяет вам превращать обычный ключ в ключ-модификатор. Мне не очень нравится идея комбинировать каждую клавишу-модификатор на клавиатуре и называть ее «Hyper», потому что в будущем она может конфликтовать с другими вещами.
Я уже использую Karabiner, и, видимо, вы можете создавать собственные модификаторы с ним. Но для этого требуется сопоставить каждую комбинацию на уровне ОС, чтобы, скажем,
§-a
отправить что-то, что Emacs знает, как с этим справиться.Затем я вспомнил библиотеку клавишных аккордов и понял, что это настоящая терминология Emacs для того, что я хотел. Пример конфигурации:
Единственная проблема, которую я имею с key-chord, заключается в том, что семантика key-chord немного отличается от модификатора + key - повторение не допускается, и весь аккорд должен быть введен очень быстро.
Если я придумаю решение этих проблем, я напишу об этом где-нибудь и предоставлю ссылку в редактировании этого ответа.
источник
Вы можете и не может быть не в состоянии привязать ключ раздела знак (§ ключ) , чтобы отправить команду гипер, однако вы можете привязать ключ колпачков-блокировки для отправки Hyper, используя SEIL PCKeyboardHack .
Чтобы заново связать ключ caps-lock в Seil, просто сделайте следующее:
источник