Как отправить S-Ret Emacs в терминале?
Вопрос
В org-mode
, прессование M-S-RET
(Мета-сдвиг-возврат) создаст новый TODO
на новой линии. Эта ключевая последовательность отправляет M-RET
Эмаце через мой терминал. Я проверил это с C-h c ESC-S-RET
, который возвращается M-RET is undefined
в мини-буфере.
Я использую Snow Leopard с Emacs 23.2.1, работающим в терминале. Нет возможности определить RET
Последовательность в предпочтениях клавиатуры терминала.
Любая идея, что вызывает отсутствие SHIFT
? Обходные пути?
Решение
Вы можете заставить Emacs притворяться, что он получил S-RET
с C-x @ S RET
(ПРИМЕЧАНИЕ ПЕРЕССИТЕЛЬНЫЙ S
).
Это также работает для добавления контроля, мета, альт, гипер или супер -модификаторов; тип C-x @ C-h
Для списка привязков. А Раздел клавиш модификатора в руководстве EMACS упоминает это тоже.
Другие советы
В целом, множество клавишных просто невозможно отправить через терминал, поскольку терминалы подражают старому протоколу, который допустил только 256 отдельных клавиш (или, может быть, только 128).
Скорее всего, когда вы нажимаете S-ret, Terminal.App точно То же самое, что и нажали. Таким образом, Emacs не может различить эти два случая.
Перекрестное связывание с другими вопросами и с:
Если вы используете XERM, то modifyOtherKeys
Вариант может облегчить это привязку. Смотрите следующее для деталей:
Отправить "C- (" EMACS в терминале VT100/XERM (терминал Mac OS X)?
Я подозреваю, что EMACS распознает эти коды по умолчанию, но если нет, то это также видит input-decode-map
Как описано здесь: Связывание m-u003Cup> / M-u003Cdown> В 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
Перемещать текст в таблицах.