Как отправить 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
? Обходные?
Ответы
Ответ 1
Вы можете заставить Emacs притвориться, что он получил S-RET
с C-x @ S RET
(обратите внимание на верхний регистр S
).
Это также работает для добавления элементов управления, мета, альт, гипер или супермодификаторов; введите C-x @ C-h
для списка привязок. В разделе "Модификационные ключи" в руководстве Emacs] также упоминается об этом.
Ответ 2
В общем, много нажатий клавиш просто невозможно отправить через терминал, поскольку терминалы эмулируют старый протокол, который допускает только 256 отдельных ключей (или, может быть, только 128).
Скорее всего, когда вы нажимаете S-RET, Terminal.app делает то же самое, что и при нажатии RET. Таким образом, Emacs не имеет возможности отличить эти два случая.
Ответ 3
Сшивание с другими Q & As:
Если вы используете xterm, опция modifyOtherKeys
может облегчить эту привязку. Подробнее см. Ниже:
Отправить "C - (" в Emacs в терминале VT100/xterm (терминал Mac OS X)?
Я подозреваю, что Emacs распознает эти коды по умолчанию, но если нет, то также см. input-decode-map
, как описано здесь: Binding M- <up> /M- <down> в Emacs 23.1.1
Ответ 4
См. пояснения и альтернативные ссылки для TTY здесь.
Некоторые из них работали для меня в терминале в Ubuntu Linux (как локально, так и в SSH), но не все из них, похоже, работают. Например, альтернатива, предусмотренная для S-RET
(которая, как я ожидала, запускает org-table-copy-down
), по-видимому, запускает org-clone-subtree-with-time-shift
по какой-либо причине. Однако я нашел список альтернатив полезным, особенно с префиксом M-
. Например ESC UP
для M-UP
для перемещения текста в таблицах.