web-dev-qa-db-fra.com

Comment réparer le comportement de retour arrière étrange avec urxvt + zsh?

J'utilise urxvt en combinaison avec zsh. Cependant, depuis ma nouvelle installation d'ubuntu 10.04, j'ai le problème suivant. Si je tape retour arrière, le curseur se déplace vers la droite (au lieu de supprimer les caractères situés à gauche).

Supposons que je tape n caractères, puis que vous appuyiez sur la touche retour arrière n fois, le curseur se positionne à gauche. Si je saisis un retour arrière plus, le curseur ne se déplace plus.

Si je tape la flèche gauche, rien ne se passe, si je tape la flèche droite après un certain caractère apparaît.

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

n'a pas aidé.

urxvt + bash fonctionne bien ainsi que xterm + zsh.

zsh-version: 4.3.11-4ubuntu2.is.3ubuntu1 version rxvt-unicode: 9.09-3

Une idée comment résoudre ce problème?

14
student

Essayez d’ajouter ce qui suit à votre .zshrc:

TERM=xterm
19
ycallaf

En zsh, que dit bindkey | grep delete? Ce sont les lignes que je reçois:

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

Vous devriez avoir "^?" comme cela représente le retour arrière. Si ce n'est pas le cas, vous pouvez appeler bindkey "^?" backward-delete-char à l'invite zsh pour l'insérer.

Est-ce que cela résout le problème?

6
Ehtesh Choudhury

C'est un vieux fil de discussion et personne ne le verra peut-être, mais le problème pour moi était dans le fichier .Xresources. J'avais mal interprété le paramètre URxvt*termName comme la chaîne qui deviendrait le titre de la fenêtre urxvt. C'est en fait ce qui devient la variable d'environnement $TERM, à moins que le shell ne la remplace (bash le fait).

Ma solution était d'ajouter URxvt*termName: xterm-256color au fichier ~/.Xresources. Comme pour toute modification de ce fichier, vous devez exécuter xrdb -merge ~/.Xresources et redémarrer complètement urxvt (y compris urxvtd processus de démon) pour que les modifications soient affichées.

1
Blieque

Vous pouvez également contourner le problème en définissant

stty erase '^?'

Voici quelques détails sur le comportement déviant de certains émulateurs de terminaux (ce qui explique d'ailleurs pourquoi certains émulateurs ont ce problème): mini-HOWTO Linux Backspace/Delete .

1
rotiyan