Зазвичай з історичних причин 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-mapmap 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.