Неудовлетворительный обходной путь
Последовательность C-x @ s-…
эквивалентна s-…
, например, C-x @ s-t
эквивалентна s-t
. В сочетании с ярлыками iTerm2:
- Создайте глобальный или профильный ярлык для
⌘…
установите для Send hex code
, например, ⌘t => Send hex code
Укажите шестнадцатеричный код вида: 0x18 0x40 MOD KEY
где MOD
- 0x68
или 0x73
для h
и s
соответственно, а KEY
- это ключ, который вы хотите изменить с помощью hyper
или super
. Например, отображение ⌘t
в s-t
:
⌘t => 0x18 0x40 0x73 0x74
Повторите для каждого ярлыка, который вы хотите ... ме ...
Неудачный эксперимент № 1
В iTerm:
- Глобальная настройка левой и правой опциональных клавиш как левой опции
- Глобально настроить левую и правую клавиши управления как правую опцию
- В профиле настройте Левый параметр как
+ESC
а Правый - как Meta
Преобразование ⌘
таким образом эффективно отключает все сочетания клавиш iTerm… ме…
В Emacs:
Использование Right Option (R⌥
) приводит к символам с установленным 8-м битом, что, как я понимаю, является старым способом представления нажатия клавиши META (назад, когда на клавишах была настоящая клавиша META).
Однако мне не удалось заставить Emacs сделать что-то полезное с этим различием. Учитывая, что META-t
=> t
с его 8-м битом на => восьмеричном 364
я пробовал:
(global-set-key (kbd "[R⌥-t]") (lambda () (interactive) (message "woot #1")))
(global-set-key (kbd "\364") (lambda () (interactive) (message "woot #2")))
Где [R⌥-t]
- это отдельный символ, который появляется в моем буфере, когда я нажимаю эту последовательность клавиш, графически представлен как \364
но ведет себя как один символ.
Стоит отметить, что при использовании нашей без привязки к клавише всякий раз, когда я R⌥-t
в emacs ничего не отображается, пока я не нажму другую клавишу, на которой emacs отображает символ \364
последующей интерпретацией второго нажатия. Например, R⌥-t a
=> \364a<point>
и R⌥-t LEFT
=> <point>\364
, но только после нажатия кнопки a
стрелкой или влево.
Вы можете экспериментировать, выполнив только шаг 3 выше и используя R⌥
напрямую.