Есть ли способ связать C-[
что-то и не испортить все M-
(мета) привязки?
Не в первый раз , этот вопрос возникает. К сожалению, единственное решение, предлагаемое в предыдущем потоке, это: а) специфичный для Linux, б) требует внешнего инструмента (опять-таки специфического для Linux), который не имеет ничего общего с Emacs. В том же духе я мог бы использовать что-то вроде Karabiner на OS X, чтобы украсть C-[
последовательность до того, как Emacs ее получит, но это неуклюже и дорого.
Учитывая , что Emacs , что настаивает на переводе C-[
на ESC
, C-i
чтобы TAB
и , возможно , другие , я бы очень хотел , чтобы разорвать эти отношения и получить драгоценные последовательности ключевых обратно. Недавно я на полной скорости столкнулся с этой проблемой и обвинил тихий невинный режим smartparens .
Возможное решение , что участие function-key-map
и key-translation-map
был обсуждаться здесь , но увы она больше либо не работает или не работать в первую очередь (или я делаю что - то неправильно). Я думаю, что все шло в правильном направлении.
источник
C-[
наESC
». Это одно и то же . Точно так жеC-i
иTAB
разные имена для одного и того же кода управления ASCII.C-[
(нажатиеCtrl
и нажатие[
) сC-[
управляющим символом (он жеESC
символ), но нет, это не обязательно для того, кто разрабатывает редактор. И да, Emacs делает это.C-[
иESC
являются тем же символом, но ключиCtrl
+[
иEsc
не должны быть сопоставлены с какими-либо конкретными символами.Ответы:
Адаптировано из моего собственного конфига :
Это, очевидно, будет работать только в графическом интерфейсе.
edit: Обратите внимание, что
input-decode-map
терминал является локальным, что означает, что его изменение не будет работать, если вы используетеemacsclient
, но будет работать, если вы используетеemacs
. Я исправил проблему в моей конфигурации, обернув ее в команду, работающую с фреймом, и добавив ее вafter-make-frame-functions
ловушку.источник
<C-i>
и<C-[>
связанные назадTAB
иESC
в глобальной-карте , как вы предлагаете в вашей конфигурации утончается разбивает мой Emacs каждый раз , когда я ударил Em: