Как отправить S-RET в Emacs в терминале?

В org-mode, нажав M-S-RET (meta-shift-return) создаст новый TODO на новой линии. Эта последовательность клавиш отправляет M-RET в Emacs через мой терминал. Я проверил это с C-h c ESC-S-RET, который возвращает M-RET is undefined в мини-буфере.

Я использую Snow Leopard с Emacs 23.2.1, запущенным в Terminal.app. Нет возможности определить RET последовательность в настройках клавиатуры терминала.

Любая идея, что является причиной пропавших без вести SHIFT? Обходные?

5 ответов

Решение

Вы можете заставить Emacs притвориться, что он получил S-RET с C-x @ S RET (обратите внимание, заглавные S).

Это также работает для добавления элементов управления, мета, альта, гипер или супер модификаторов; тип C-x @ C-h для списка привязок. Раздел " Ключи модификаторов" в руководстве по Emacs также упоминает об этом.

В общем, множество нажатий клавиш просто невозможно отправить через терминал, поскольку терминалы эмулируют старый протокол, который допускает только 256 отдельных ключей (или, может быть, только 128).

Скорее всего, когда вы нажимаете S-RET, Terminal.app делает то же самое, что и при нажатии RET. Таким образом, Emacs не может различить эти два случая.

Перекрестные ссылки на другие вопросы и ответы:

Если вы используете Xterm, то modifyOtherKeys опция может облегчить эту привязку. Подробности смотрите ниже:

Отправить "C-(" в Emacs в терминале VT100/xterm (терминал Mac OS X)?

Я подозреваю, что Emacs распознает эти коды по умолчанию, но если нет, то также вижу input-decode-map как описано здесь: Связывание M- / M- в Emacs 23.1.1

Смотрите объяснение и альтернативные ярлыки для TTY здесь.

Некоторые из них работали для меня в терминале в Ubuntu Linux (как локально, так и через SSH), но, похоже, не все из них работают. Например, альтернатива, предусмотренная для S-RET (который я ожидал запустить org-table-copy-down) вместо запуска org-clone-subtree-with-time-shift по какой-то причине. Тем не менее, я нашел список полезных альтернатив, особенно те, которые с M- префикс. Например ESC UP за M-UP перемещать текст в таблицах.

Хоть это и много лишних нажатий клавиш, оказывается, чтоorg-modeесть альтернатива:

C-c C-x <shift> m

т.е.C-c C-x M

https://orgmode.org/manual/TTY-Keys.html#TTY-keys

Другие вопросы по тегам