37 votos

Uso de las teclas ctrl-flecha con PuTTY y pantalla

He buscado y no he encontrado una solución para esto en ningún sitio. Estoy usando PuTTY desde Windows para conectarme a varios servidores donde ejecuto bash y screen. Parece que bash funciona bien con las teclas ctrl-flecha para saltar palabra a palabra en la línea de comandos pero dentro de screen no funciona. No en screen, ctrl-izquierda envía "^[OC y ctrl-derecha es "^[OD". Dentro de la pantalla, en cambio, obtengo "^[[C" y "^[[D", que parecen ser los códigos para las teclas de flecha izquierda/derecha. ¿Hay alguna manera de conseguir que la pantalla reconozca las teclas de flecha ctrl cuando se utiliza PuTTY? (Para tu información, no recuerdo haber tenido este problema al usar gnu-terminal en linux en lugar de PuTTY).

ACTUALIZACIÓN: Parece que el problema es PuTTY, ya que no envía los códigos de escape necesarios para que esto funcione. Me rindo por ahora y uso Cygwin+mintty.

0 votos

Wow, mintty es genial - he estado buscando un emulador de terminal decente para Windows desde hace algún tiempo. Gracias por ello.

0 votos

Sin embargo, estoy recibiendo ^[[1;5A para Ctrl-Up, que parece ser más correcto, según code.google.com/p/mintty/wiki/Keycodes#Cursor_keys

28voto

Fayer Michael Puntos 101

Como se menciona en aquí , puedes ponerlo en ~/.inputrc:

"\eOD": backward-word
"\eOC": forward-word

A mí me ha funcionado.

5 votos

Esto me funcionó y fue mucho más fácil que la respuesta aceptada.

0 votos

Esto también me funcionó, mientras que la respuesta aceptada no lo hizo

0 votos

+1 Respuesta sucinta que simplemente funciona.

14voto

jason saldo Puntos 5036

Editar:

Esto es lo que me ha funcionado:

  • Mi ~/.bashrc establece TERM=xterm (el mío resulta ser TERM=xterm-256colors ) anulando la pantalla TERM=screen

  • He puesto PuTTY > Terminal > Características > Desactivar el modo de teclas de cursor de la aplicación a comprobado

  • Ingreso tput smkx en el prompt de Bash

  • Ahora las teclas Ctrl-Flecha saltan palabra por palabra

  • Con fines informativos, si lo hago:
    tput smkx | hexdump -c
    Me sale
    0000000 033 [ ? 1 h 033 =
    y
    tput rmkx | hexdump -c
    me da
    0000000 033 [ ? 1 l 033 >

Creo que hay una manera de reelaborar esto en algo un poco mejor, pero es lo que tengo hasta ahora y parece funcionar.

Respuesta original:

Desde info screen :

Cada ventana de una sesión `screen' emula un terminal VT100, con algunas funciones adicionales. El emulador VT100 está codificado, no hay ningún otro otros tipos de terminal pueden ser emulados.

Y los VT100 no tienen códigos de teclas Ctrl-Flecha.

0 votos

set -o vi (si eres ese tipo de persona :)

1 votos

@MikeyB: ¿Cómo ayuda eso (no lo hace, por cierto)?

0 votos

Gracias. No es la respuesta que esperaba, pero ahora puedo seguir adelante y vivir con esta limitación o utilizar otra unión de teclas.

4voto

martjno Puntos 1024

Me sorprende un poco que hayas conseguido que Putty envíe correctamente las teclas ctrl-flecha incluso sin usar la pantalla, ya que a mí nunca me ha funcionado. Mi solución fue cambiar a usar alt-arrowkeys (meta-arrowkeys), que creo que tienen la misma vinculación hacia adelante-palabra / hacia atrás-palabra en bash por defecto, aunque tuve que emitir un par de comandos adicionales para zsh para reconocerlos:

bindkey "^\[^\[\[C" forward-word      # Meta-RightArrow
bindkey "^\[^\[\[D" backward-word     # Meta-LeftArrow

0 votos

Puede que yo también siga este camino. La tecla ctrl izquierda es mucho más fácil de pulsar que las teclas meta o alt (al menos en mi teclado). Ah, bueno.

4voto

Collin Grady Puntos 111

Por si otros encuentran esta vieja pregunta como yo, una solución más reciente:

Las teclas Ctrl y las flechas no funcionan en Putty. ¿Qué puedo hacer?

putty invierte el sentido del modo de la tecla del cursor en ctrl, que es un poco difícil para tmux detectar correctamente. Para que las teclas ctrl funcionen bien, hay que cambiar el configuración de terminfo para que kUP5 (Ctrl-Up etc) sean las versiones ajustadas, y desactivar smkx/rmkx para que tmux no cambie el modo. Por ejemplo con esta línea en .tmux.conf (asumiendo que tienes TERM ajustado a xterm):

set -g terminal-overrides " xterm*:kLFT5= \eOD :kRIT5= \eOC :kUP5= \eOA :kDN5= \eOB :smkx@:rmkx@"

Tenga en cuenta que esto sólo funcionará en tmux 1.2 y superior.

http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ

0voto

jcollum Puntos 10236

Deberías buscar en la documentación de terminfo, ncurses, screen y putty si quieres depurar/configurar correctamente. También los atajos de bash pueden ser configurados con inputrc. Mira en las páginas man de bash y busca inputrc.

0 votos

No creo que el problema sea lo que hay en elputrc. Ya he probado varias soluciones posibles que implicaban poner entradas en inputrc sin éxito. De nuevo, parece que el código incorrecto está siendo enviado a la pantalla para las teclas ctrl-flecha. Tampoco quiero gastar mucho más tiempo en esto de lo que ya he gastado ya que realmente es un inconveniente menor.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: