2

Что говорит заголовок: я хочу перейти на использование модели emacs-server / emacs-client вместо использования GUI для Mac OS X. Я использую iTerm2. Я хотел бы отобразить функциональную клавишу (Fn) на супер или гипер.

Я пытался использовать KeyRemap4MacBook - но не повезло.

Обновить:

Похоже, я могу использовать event-apply-super-modifier или event-apply-hyper-modifier , определенный function-key-map .

Я, вероятно, могу заставить клавишу Fn выдавать используемый код клавиши, такой как KeyCode::F18 , и сделать так, чтобы iTerm2 преобразовал это в некоторые escape-символы, например:

Esc+[+J или что-то в этом роде.

ОБНОВЛЕНИЕ (13 апреля 2015 г.):

Я думаю, что это https://apple.stackexchange.com/questions/144481/sending-controlalt-char-to-terminal-in-iterm2 очень интересно. Может быть способ настроить iterm2 для отправки соответствующих управляющих клавиш, аналогично ответу @ toolbear74.

1 ответ1

1

Неудовлетворительный обходной путь

Последовательность C-x @ s-… эквивалентна s-… , например, C-x @ s-t эквивалентна s-t . В сочетании с ярлыками iTerm2:

  1. Создайте глобальный или профильный ярлык для ⌘… установите для Send hex code , например, ⌘t => Send hex code
  2. Укажите шестнадцатеричный код вида: 0x18 0x40 MOD KEY где MOD - 0x68 или 0x73 для h и s соответственно, а KEY - это ключ, который вы хотите изменить с помощью hyper или super . Например, отображение ⌘t в s-t:

    ⌘t => 0x18 0x40 0x73 0x74
    
  3. Повторите для каждого ярлыка, который вы хотите ... ме ...

Неудачный эксперимент № 1

В iTerm:

  1. Глобальная настройка левой и правой опциональных клавиш как левой опции
  2. Глобально настроить левую и правую клавиши управления как правую опцию
  3. В профиле настройте Левый параметр как +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⌥ напрямую.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .