Зазвичай з історичних причин emacs трактує TAB
код і C-i
ключ як однакові, пор. документація emacs lisp на функціональні клавіші або відповідь абобо на питання "Яка різниця між TAB та?" .
Примітка: У цій статті, є коди клавіш
TAB
,<tab>
іC-i
; tabі Ctrl+ iз іншого боку - фізичні клавіші на клавіатурі.Однак на даний момент emacs розглядає
TAB
іC-i
як те саме, тобто(equal (kbd "TAB") (kbd "C-i"))
->t
.
Однак, оскільки ми вже не живемо в обчислювальній кількості, я вважаю це надзвичайно дратівливим. Там є кілька пропозицій, що можна зробити, щоб подолати це, наприклад
"Як я прив'язую команду до Ci, не змінюючи TAB?"
- Рішення Trey не працювало для моєї, змінна
local-function-key-maps
не змінюється. Модифікація його на використання,delete
аdelq
не призводить до зміни зміненої змінної, але вона не приносить рішення ... tabі Ctrl+ iзалишаються однаковими. - Переклад на гіперкарту здається вирішенням 1980-х… Я б також хотів використовувати Hyper+ i.
- Рішення Trey не працювало для моєї, змінна
Використання знака
input-decode-map
map Ctrl+ iдо коду контролю після ASCII - це майже те, що я шукаю. За винятком того, що він не працює належним чином зkbd
макросом, що означає, що потрібно змінювати всі біти вихідного коду, який буде зв'язувати Ctrl+ i. Можливо, це найкраще рішення, враховуючи, що весь вихідний код змінено належним чином.Використання
(kbd "<tab>")
для tabі(kbd "C-i")
(що перекладається(kbd "TAB")
як\t
буквальний) для Ctrl+ i не працює, але вам доведеться змінити всі вихідні файли, які використовують неправильний вид tab[Прочитати: код ключаTAB
], який дратує.
Це було запропоновано, наприклад, у випуску github та також на emacs.sx .
Жодне з цих рішень не здається реальним рішенням, я вважаю за краще їх вирішити або зламати (наявну помилку ).
Чи є вихід там змусити Emacs , щоб відобразити tabна
(kbd "<tab>")
і в(kbd "TAB")
той час як Ctrl+ iвідображається(kbd "C-i")
доходячи модифікує в Emacs вихідний код?Цей підхід повинен бути повністю непомітним для користувача, це означає, що tabподібні клавіші коду
<tab>
таTAB
повинні відображатись до одного прив’язки, в той час як Ctrl+ iподібний клавішний кодC-i
повинен відображатись до іншого прив’язки.
Що стосується менш серйозної уваги: будь-які розробники emacs тут можуть коментувати, чи зміниться це / виправлено у вихідному коді emacs в якийсь момент?
kbd
перекласти TAB як [вкладку]. Він просто не працюватиме для завантажених частин Emacs.
TAB
іC-i
(коди, а не ключі) є одними і тими самими за визначеннямTAB
.