¿Hay alguna forma de unirse C-[
a algo y no tener todos los M-
enlaces (Meta) en mal estado?
No es la primera vez que surge esta pregunta. Desafortunadamente, la única solución ofrecida en el hilo anterior es a) específica de Linux, b) requiere una herramienta externa (nuevamente específica de Linux) que no tiene nada que ver con Emacs. En la misma línea, podría haber usado algo como Karabiner en un OS X para robar la C-[
secuencia antes de que Emacs la obtenga, pero esto es torpe y costoso.
Dado que se trata de Emacs que insiste en la traducción C-[
a ESC
, C-i
a TAB
y probablemente otros me gustaría mucho como para romper estas relaciones y obtener secuencias de teclas preciosas espalda. Hace poco me encontré toda velocidad en este problema y la culpa a inocentes tranquila smartparens modo.
Una posible solución que involucró function-key-map
y key-translation-map
se discutió aquí, pero lamentablemente ya no funciona o no funcionó en primer lugar (o estoy haciendo algo mal). Sin embargo, creo que iba en la dirección correcta.
fuente
C-[
aESC
". Los dos son lo mismo . Del mismo modo,C-i
yTAB
son nombres diferentes para el mismo código de control ASCII.C-[
(presionarCtrl
y golpear[
) al personaje deC-[
control (también conocido como el personaje), pero no, eso no es obligatorio para alguien que diseña un editor. Y sí, Emacs hace eso. y son el mismo carácter, pero las teclas + y no necesitan asignarse a ningún carácter en particular.ESC
C-[
ESC
Ctrl
[
Esc
Respuestas:
Adaptado de mi propia configuración :
Obviamente, esto solo funcionará en la GUI.
editar: Tenga en cuenta que
input-decode-map
es terminal local, lo que significa que modificarlo no funcionará si está usandoemacsclient
, pero lo hará si lo está usandoemacs
. He solucionado el problema en mi configuración envolviéndolo en un comando que opera en un marco y agregándolo alafter-make-frame-functions
gancho.fuente
<C-i>
y<C-[>
volver aTAB
yESC
en el mapa global, como sugieres en tu configuración, bloquea mis Emacs cada vez que los golpeo: