Emacs не распознает C- / в оболочке через ssh - PullRequest
27 голосов
/ 01 октября 2011

Я использую Emacs в режиме оболочки через Bash в Mac Terminal, и Emacs не распознает C - / в качестве клавиши отмены. Кажется, он вообще не распознает C - / , поскольку при использовании Ch k C - / (то есть *) ничего не происходит. 1011 *, затем C - / ). Есть идеи? Отмена с C-x u недопустима.

Спасибо.

Ответы [ 3 ]

32 голосов
/ 01 октября 2011

Проблема в том, что Emacs считает, что любой ключ-модификатор (control, shift, meta и т. Д.) Может быть применен к любому обычному ключу.Это верно, когда Emacs общается напрямую с ОС, но , а не , когда он работает внутри традиционного (псевдо-) терминала, что вы и получаете, когда используете emacs внутри ssh.В этом случае могут использоваться только модифицированные ключи, которые отображаются на традиционные управляющие символы ASCII. C - / не является одним из этих ключей.

Хорошая новость заключается в том, что Emacs восходит ко временам, когда терминалы ASCII были единственной игрой в городе, есть еще одна привязка для undo что является управляющим символом ASCII: C -_ (знак подчеркивания управления, также известный как control-shift-minus, или U + 001F UNIT SEPARATOR).

Годhmbl crspdt фактически не знал, что C - / что-то сделал;он также восходит к тем дням, и C -_ - это то, что запутано в его пальцах.Он не может сказать, сочтете ли вы, что это нажатие клавиши допустимо - это включает использование как Control, так и Shift - но он подозревает, что это менее плохо, чем Cx u .

13 голосов
/ 23 мая 2012

Терминал не может отправить C - / . Все, что вам нужно - это способ отправить псевдоним отмены, например C -_ , когда набрано C - / . Есть два относительно простых способа сделать это:

  1. Используйте iTerm 2 вместо Mac Terminal. Он переназначает ключ из коробки.
  2. Используйте KeyRemap4MacBook для переназначения C - / в C -_ в Mac Terminal.
    1. Установка KeyRemap4MacBook .
    2. Reboot.
    3. Откройте Системные настройки> KeyRemap4MapBook
    4. Включить следующую опцию Изменить ключ (поиск "control + slash"):

      Для приложений> Включить только на терминале> Изменить косую черту (/)

1 голос
/ 02 октября 2011

сочетания клавиш emacs становятся бесполезными в терминалах / консолях.это королевская боль, но это обычно поправимо.как уже упоминалось @Zach, ключи отправляются по-разному при работе в терминалах.хитрость заключается в том, чтобы выяснить, что на самом деле отправлено в emacs, а затем связать это с командой, которую вы хотите выполнить. это довольно хороший (хотя и старый) учебник, в котором вы узнаете, как решить эти типы проблем (3.0 - это то, где начинается понимание того, что вам нужно делать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...