teclas rapido comandos acceso emacs gnu gnu-screen screenrc

emacs - rapido - Pantalla gnu: ¿cambiar la tecla de comando de escape predeterminada a ALT-X?



emacs linux (7)

Es posible evitar las limitaciones del comando de escape usando registros y el comando bindkey . Solo pon esto en .screenrc :

# reset escape key to the default escape ^Aa # auxiliary register register S ^A # Alt + x produces ^A and acts as an escape key bindkey "^[x" process S ## Alt + space produces ^A and acts as an escape key # bindkey "^[ " process S

Consulte http://adb.cba.pl/gnu-screen-tips-page-my.html#howto-alt-key-as-escape

En la pantalla GNU, quiero cambiar el enlace de comando predeterminado a Alt-s (ajustando .screenrc) en lugar del Ca predeterminado, la razón es que uso emacs, por lo tanto, la pantalla GNU une la tecla Ca, enviando "Ca" a emacs tedioso (como dijo @Nils, para enviar "Ca" debería escribir "Ca a"), así como "Ca" en el shell bash, y podría cambiar el escape a C- pero algunos de ellos ya están asignados en emacs y Otras combinaciones no son tan fáciles como ALT-s. Si alguien ya ha hecho un mapeo de teclas ALT, hágamelo saber.



No responde su pregunta, pero Ca a envía a Ca a la ventana, ¿no es así?


Para hacer que Alt + X sea el prefijo predeterminado para los comandos y ca libre, agregue las siguientes líneas a .screenrc:

escape ^|| bindkey "^[x" command

Como efecto secundario C- | será prefijo de comando también. Si necesita que estas teclas también sean libres, entonces corrija "escape ^ ||" en consecuencia.


Screen no tiene ninguna sintaxis abreviada para los enlaces alt, pero puede asignarle el código octal directamente. Por ejemplo, en mi máquina, Alt-x tiene el código hexadecimal F8, o 370 octales, por lo que al poner

escape / 370x

en mi pantalla cambió el código de escape a alt-X

Probado y funciona con pantalla 4.00.03 en Linux.

Puede que tenga que cambiar el escape, ya que creo que esto puede depender de cosas como su idioma y su conjunto de códigos, etc.: cómo descubrí cuál era mi código de escape era escribir

$ echo -n ^QM-x | perl -ne ''printf "%lo/n", ord($_)''

^ Q es el comando quited-insert para readline (inserta lo que escribes directamente sin intentar interpretarlo) y Mx era un Alt-X literal.


Soy un Emacs y usuario de pantalla también. Aunque rara vez uso Emacs en un terminal, y como tal en una sesión de pantalla, tampoco quise renunciar a Ca por el shell (que utiliza enlaces de teclas de Emacs). Mi solución fue usar Cj como la tecla de prefijo para la pantalla, que estaba dispuesto a sacrificar. En los modos de programación de Emacs está vinculado a (nueva línea y sangría) a la que también estoy vinculado a RET, por lo que realmente no me lo pierdo.

Por cierto: sé que esto es un consejo en lugar de una respuesta, pero sentí que esto sería lo suficientemente valioso para publicar.


Desde mi lectura de la man screen del man screen , parece que el único metacaracteres que la screen puede usar para el enlace de comando es CTRL :

escape xy Set the command character to x and the character generating a literal command character (by triggering the "meta" command) to y (similar to the -e option). Each argument is either a single character, a two-character sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal number (specifying the ASCII code of the character), or a backslash followed by a second character, such as "/^" or "//". The default is "^Aa".

Si hay algún mapeo que no usa en emacs, incluso si es inconveniente, como C-| , entonces podría usar su administrador de entrada de terminal para volver a asignar ALT-X a eso, permitiéndole usar el enlace ALT lugar. Eso sería un poco pirateado.