¿Cómo solucionar un comportamiento extraño de retroceso con urxvt + zsh?


15

Yo uso urxvt en combinación con zsh. Sin embargo, desde mi nueva instalación de ubuntu 10.04 tengo el siguiente problema. Si escribo retroceso, el cursor se mueve hacia la derecha (en lugar de eliminar los caracteres de la izquierda).

Supongamos que escribí n caracteres y luego presionando la tecla de retroceso n veces mueve el cursor n posiciones a la izquierda, si escribo la tecla de retroceso y luego una más, el cursor ya no se mueve.

Si escribo la flecha hacia la izquierda, no pasa nada, si escribo la flecha hacia la derecha después aparece un carácter.

mv .zshrc .zshrc.bak
mv .Xdefaults .Xdefaults.bak

no ayudó

urxvt + bash funciona bien, así como xterm + zsh.

Versión zsh: 4.3.11-4ubuntu2.is.3ubuntu1 versión rxvt-unicode: 9.09-3

¿Algúna idea de cómo arreglar esto?

Respuestas:


19

Intente agregar lo siguiente a su .zshrc:

TERM=xterm

Esto me lo arregló FWIW.
seth

55
Mejor uso TERM=xterm-256colorpara soportar 256 colores.
xuhdev

1
¿No estás simplemente evitando el problema, usando xterm en lugar de urxvt?
villasv

1
Sí, esto también funcionó para mí. Uso el Subsistema de Windows para Linux (WSL) con Ubuntu y ZSH y me ha estado molestando durante mucho tiempo. Gracias por esto.
Dave Reid

7

En zsh, ¿qué bindkey | grep deletedice? Estas son las líneas que obtengo:

"^D" delete-char-or-list
"^H" backward-delete-char
"^[3;5~" delete-char
"^[[3~" delete-char
"^?" backward-delete-char

Deberías tener "^?" como eso representa retroceso. Si no ... puede llamar bindkey "^?" backward-delete-charal indicador de zsh para ponerlo.

¿Eso resuelve el problema?


1
bindkey | grep eliminar "^ D" delete-char-or-list "^?" backward-delete-char
estudiante

1

También podría solucionar el problema configurando

stty erase '^?'

Aquí hay algunos detalles sobre el comportamiento desviado de ciertos emuladores de terminal (que es por cierto por qué ciertos emuladores tienen este problema): Retroceso de Linux / Eliminar mini-COMO .


1

Es un hilo viejo y quizás nadie lo vea, pero el problema para mí estaba en el .Xresourcesarchivo. Había malinterpretado el URxvt*termNameparámetro como la cadena que se convertiría en el urxvttítulo de la ventana. De hecho, es lo que se convierte en la $TERMvariable de entorno, a menos que el shell lo anule (lo bashhace).

Mi solución fue agregar URxvt*termName: xterm-256coloral ~/.Xresourcesarchivo. Al igual que con cualquier cambio en este archivo, deberá ejecutar xrdb -merge ~/.Xresourcesy reiniciar por completo urxvt(incluidos los urxvtdprocesos de daemon) para que se muestren los cambios.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.