Перетворіть звичайний ключ у модифікаційний ключ


11

У мене є клавіатура, яка з незрозумілої причини містить клавішу, яка надсилає символ датського долара в ОС 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>")

що просто перетворює §ключ на <ключ.



2
Ви повинні мати можливість це робити на рівні ОС, але не в emacs.
Малабарба

Відповіді:


4

Коротка версія : з точки зору Emacs, мені дуже потрібні клавіші-акорди .


@Malabarba і @XinUmbralis здаються правильними - Emacs не дозволяє нормально перетворити звичайну клавішу на модифікатор. Мені не дуже подобається ідея поєднувати кожну модифікаційну клавішу на клавіатурі та називати її "Hyper", оскільки це може конфліктувати з іншими речами в майбутньому.

Я вже використовую Karabiner, і, мабуть, ви можете створити спеціальні модифікатори за допомогою нього. Але для цього потрібне відображення кожної комбінації на рівні ОС, щоб, скажімо, §-aнадсилати щось, з чим Emacs вміє впоратися.

Тоді я згадав бібліотеку акордів ключів і зрозумів, що це справжня терміналогія Emacs для того, чого я хотів. Приклад конфігурації:

(require 'key-chord)
(key-chord-mode 1)
(key-chord-define-global "§a" 'other-frame)

Єдине питання, що виникає у мене з ключем-акордом, полягає в тому, що семантика клавіш-акорда трохи відрізняється від модифікатора + клавіша - повторення не дозволено, і весь акорд потрібно вводити дуже швидко.

Якщо я знайду рішення цих проблем, я напишу про це десь і надам посилання в редакції на цю відповідь.


3

Ви можете або не зможете повторно зв’язати клавішу знаку розділу (клавіша §) для надсилання гіперкоманди, проте ви можете повторно зв'язати клавішу cap -lock для надсилання Hyper, використовуючи Seil PCKeyboardHack .

Для того, щоб відновити ключ Caps-Lock у Seil, просто виконайте наступне:

  1. Відкрийте Seil та натисніть "Змінити клавішу блокування шапки".
  2. Установіть прапорець біля пункту "Змінити клавішу блокування заглушок".
  3. Двічі клацніть на клавішному коді та введіть код 80.

1
Ця відповідь, мабуть, була б кращою як коментар. Загалом, відповіді мають більше, ніж надавати посилання, частково тому, що посилання можуть зникнути в будь-який час. Чи можете ви відредагувати свою відповідь, щоб зробити її більш самодостатньою?
Дан

На жаль, принаймні для мене встановлення коду клавіатури на 80 нічого не робить.
Марцін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.