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.
Fellow usuario de emacs aquí.
La mejor solución que he encontrado es un archivo ~ / .screenrc con lo siguiente:
# C-a :source .screenrc
escape ^gg
Actualización en vivo aquí: https://gist.github.com/1058111
Véase también: http://ubuntuforums.org/showthread.php?t=498675
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.