Почему M-RET становится CMj

1656
stsquad

Я подозреваю, что это что-то вроде определения магического терминала, но я заметил, что некоторые магические ключи не работают на терминалах. Когда я набираю M-RET для создания нового элемента в режиме org, я вместо этого получаю новую строку. Mx опишите ключевые сообщения вместо CMj.

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

Редактировать:

gnome-терминал в Ubuntu Харди Херон ssh'ing в Debian Стабильно работает emacs23

3
Какая программа эмуляции терминала, какая ОС, версия Emacs и т. Д. FWIW на Terminal.app, OSX Leopard, Emacs 23, я получаю M-RET. Richard Hoskins 14 лет назад 2

3 ответа на вопрос

2
dreamlax

У вашей установки Ubuntu странная раскладка клавиатуры или она переназначает клавиши?

Перейдите в Система, затем Настройки, а затем Клавиатура и выберите вкладку Макеты. Я считаю, что универсальная 104-клавишная клавиатура работает лучше всего, поскольку она включает в себя клавиши Win (у меня тоже есть стандартные мультимедийные клавиши, и они все еще работают). Это, кажется, заставляет вещи работать независимо от того, какое терминальное приложение я использую или использую SSH.

Также убедитесь, что клавиша Alt не сопоставлена ​​с чем-либо, проверив Параметры макета.

Кажется, это гном-терминальная вещь, как будто я использую rxvt, я могу заставить M-RET работать нормально. Мне также не удалось сбросить кодировку символов по умолчанию для терминалов gnome на UTF-8, но я думаю, что это не связано с проблемой привязки клавиш. С точки зрения макета, я установил Microsoft Natural и переназначил Caps-Lock-> Control. stsquad 14 лет назад 0
2
pbr

Там на самом деле не разъединить. За кулисами действительно нет такой вещи, как «вход» или «возврат». Есть символы возврата каретки и символы новой строки.

Возврат каретки - Ctrl-M. Новая строка - Ctrl-J.

Итак, Meta-RET, представленный как Meta-Ctrl-J, имеет смысл.

Зависит от оборудования и ОС. Некоторые системы способны различать нажатия клавиш Ctrl-J и RET и могут генерировать для них разные кодовые последовательности. David R Tribble 14 лет назад 0
1
Donny Winston

I don't know. Based on others' responses, it does seem to be a gnome-terminal thing. For those who want to remap keys to get certain functionality to work, here is an example snippet:

;; Workaround for org-mode problem with gnome terminal ;; https://gist.github.com/hanachin/997420 (add-hook 'org-mode-hook (lambda () (if window-system nil (progn (define-key org-mode-map "\C-\M-j" 'org-meta-return) (define-key org-mode-map "\C-j" 'org-insert-heading-respect-content))))) 

Похожие вопросы