Як видати M-S- <лівий-стрілка> Emacs, запущеному в iTerm на Mac OS Mavericks?


2

Коли я натискаю цю комбінацію клавіш, я чую дзвін і бачу 0D символи, надруковані в буфері, замість команди, що виконується для виконуваного акорду клавіш (у цьому випадку стовпець org-table-delete-column). M-<left-arrow> працює відмінно.

Зробивши деяке копання я думаю M-<any-arrow> працює тільки тому, що iTerm налаштований на відправку певних шестигранних послідовностей терміналу для цих ключів. Коли я створив новий профіль без цих прив'язок, все M-<arrow> клавіші викликали дзвони та символи для друку.

Тому у мене є кілька питань. Перш за все, які ці шестигранні послідовності? Які послідовності мені потрібно отримати M-S-<left-arrow> правильно видавати? Чому у iTerm все це вже не визначено? І, нарешті, чому ми їх взагалі маємо? Чому iTerm не може просто відправити ключі, коли вони натиснуті на термінал, і щоб вони працювали так, як повинні, за винятком тих ключових акордів, які потрібні iTerm і Mac OS X.

Відповіді:


1

Спробуйте додати ці рядки ~/.emacs:

(define-key input-decode-map "\e[1;10A" [S-M-up])
(define-key input-decode-map "\e[1;10B" [S-M-down])
(define-key input-decode-map "\e[1;10C" [S-M-right])
(define-key input-decode-map "\e[1;10D" [S-M-left])

Використовуйте cat -v або C-v в оболонці, щоб побачити послідовності.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.