Se sentirá más cómodo en un X11 Emacs, que puede recibir entrada de teclado y mostrar texto sin pasar por la codificación y decodificación del terminal . La razón principal para usar un editor de modo de texto es ejecutarlo dentro de la pantalla o tmux en una máquina remota, pero gracias a Tramp, generalmente es más fácil editar el archivo remoto en su Emacs local. Dicho esto, puede hacer lo que quiera siempre que su emulador de terminal coopere, como es el caso de Xterm.
Cuando presiona una tecla o combinación de teclas en un terminal, se transmite a la aplicación que se ejecuta en el terminal como una secuencia de uno o más caracteres. Por ejemplo, cuando presiona a, la aplicación recibe a
. Cuando presiona Enter, la aplicación recibe el carácter CR
(también conocido como ^M
"control-emm"), también conocido como el número 13, también conocido como \r
o \015
). Las combinaciones de teclas involucradas Altgeneralmente se transmiten como el carácter ESC
(también ^[
conocido como \e
o \033
) seguido de la secuencia de la combinación de teclas o teclas sin ellas Alt. Las teclas de función y otras combinaciones de teclas se transmiten como secuencias de escape que comienzan con \e[
o \eO
.
Las secuencias de escape no están completamente estandarizadas, y los terminales generalmente ignoran ciertos atributos para ciertas claves. Por ejemplo, los modificadores hiper y super generalmente se ignoran. Puede ver lo que su terminal envía para una combinación de teclas presionando Ctrl+ Vseguido de esa combinación de teclas en un símbolo del sistema, C-q
o C-h c
seguido de la combinación de teclas en Emacs.
Xterm le permite configurar las secuencias de escape para cada clave a través de X recursos . La mayoría de las configuraciones leen los recursos desde el ~/.Xresources
inicio de X, y puede cargar el archivo manualmente con xrdb -merge ~/.Xresources
.
XTerm.VT100.translations: #override \n\
Ctrl ~Shift ~Meta <Key> Return: string("\033[73;5~") \n\
Ctrl Shift ~Meta <Key> percent: string("\033[37;6~")
Una convención común usa secuencias de escape de la forma ESC [ number1 ; number2 ~
para teclas de función con modificadores. number1
indica la tecla de función (de 15
a 24
a F5a F12- por razones históricas, F1 a través de F4diferentes secuencias de escape) e number2
indica el modificador ( 2
para Shift, 5
para Ctrl, 3
para Meta, 8
para Ctrl+ Metay agrega 1 para + Shift- no, no es muy consistente).
Tendrá que especificar los modificadores Hyper y Super a través de su número, como a Mod1
través Mod5
. Ejecute xmodmap -pm
para ver el mapeo de keyyms a modificadores. Por ejemplo, si Super_L
está vinculado a Mod5, la siguiente línea (use este caso exacto) define un enlace para Super+ Space:
~Ctrl ~Meta Mod5 <Key> space: string("\033[32;16~") \n\
Emacs traduce secuencias de escape en su representación clave interna a través de input-decode-map
olocal-function-key-map
(o function-key-map
antes de Emacs 23).
(define-key local-function-key-map "\033[32;16~" [(super ?\ )])
Esta publicación está hecha de 80% de material reciclado. ¿Hay alguna terminal de Linux que pueda manejar todas las combinaciones de teclas?