2

Я подключаюсь к автономному серверу Ubuntu (без X) через SSH и запускаю Emacs. В моем файле ~/.emacs я определил сочетание клавиш с помощью модификатора 's' (Super). Этот ярлык работает, когда я запускаю Emacs в графическом интерфейсе, но не работает через SSH. Я искал объяснение, но еще не нашел. Я предполагаю, что Супер ключ не передается по каналу SSH?

3 ответа3

5

Если вам действительно нужно использовать менее стандартные клавиши-модификаторы из эмулятора терминала, в emacs есть следующие сочетания клавиш:

C-x @ S         event-apply-shift-modifier
C-x @ a         event-apply-alt-modifier
C-x @ c         event-apply-control-modifier
C-x @ h         event-apply-hyper-modifier
C-x @ m         event-apply-meta-modifier
C-x @ s         event-apply-super-modifier

Так что в вашем случае используйте C-x @ s для супер модификатора.

3

Версия Emacs с графическим интерфейсом может прослушивать любое нажатие клавиш по протоколу X11. Версия терминала немного более ограничена - она может принимать только нажатия клавиш программы терминала вперед; клавиши-модификаторы работают только как модификаторы, а не как отдельные ключи; наконец, Super key просто не пересылается каким-либо эмулятором просто потому, что обычно считается, что он зарезервирован для ОС для таких вещей, как управление окнами.

1

Эмуляторы терминала преобразуют определенные ключи-модификаторы в последовательности и направляют эти последовательности в программы терминала. Обычно эти клавиши-модификаторы не включают Super (ключ Win ).

Эмулятор терминала Konsole же преобразует этот модификатор в последовательность ^X@s . Поэтому в Emacs вы можете добавить запись в отображение local-function-key-map которая будет в event-apply-super-modifier . Однако такая запись уже существует, так что нет ничего делать, просто использовать Konsole и ваши s- привязок будет работать, даже через SSH!

Предостережение: привязки типа C-x s-o не будут работать, потому что Emacs увидит это как C-x C-x @ s o .

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