Wie behebe ich seltsames Backspace-Verhalten mit urxvt + zsh?

15

Ich benutze urxvt in Kombination mit zsh. Allerdings habe ich seit meiner Neuinstallation von Ubuntu 10.04 folgendes Problem. Wenn ich die Rücktaste drücke, bewegt sich der Cursor nach rechts (anstatt die Zeichen auf der linken Seite zu löschen).

Angenommen, ich habe n Zeichen eingegeben und dann n-mal die Rücktaste gedrückt, um den Cursor n-mal nach links zu bewegen. Wenn ich dann noch einmal die Rücktaste drücke, bewegt sich der Cursor nicht mehr.

Wenn ich den Pfeil nach links tippe, passiert nichts. Wenn ich den Pfeil nach rechts tippe, erscheint ein Zeichen.

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

hat nicht geholfen.

urxvt + bash funktioniert genauso gut wie xterm + zsh.

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

Irgendeine Idee, wie man das behebt?

Schüler
quelle

Antworten:

19

Fügen Sie Ihrer .zshrc-Datei Folgendes hinzu:

TERM=xterm
ycallaf
quelle
Dies hat es für mich FWIW behoben.
Seth
5
Besser TERM=xterm-256colorfür die Unterstützung von 256 Farben.
Xuhdev
1
Vermeiden Sie das Problem nicht einfach, indem Sie xterm anstelle von urxvt verwenden?
Villasv
1
Ja, das hat auch bei mir funktioniert. Ich benutze das Windows-Subsystem für Linux (WSL) mit Ubuntu und ZSH und es nervt mich schon so lange. Danke dafür.
Dave Reid
7

Was sagt bindkey | grep deleteman in zsh ? Dies sind die Zeilen, die ich bekomme:

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

Du solltest "^?" als das Rücktaste darstellt. Wenn nicht ... können Sie bindkey "^?" backward-delete-charan der zsh-Eingabeaufforderung anrufen , um es einzugeben.

Behebt das das Problem?

Ehtesh Choudhury
quelle
1
bindkey | grep delete "^ D" delete-char-or-list "^?" backward-delete-char
student
1

Sie können das Problem auch umgehen, indem Sie Einstellungen vornehmen

stty erase '^?'

Hier einige Details zum abweichenden Verhalten bestimmter Terminalemulatoren (weshalb bestimmte Emulatoren dieses Problem haben): Linux Backspace / Delete mini-HOWTO .

rotiyan
quelle
1

Es ist ein alter Thread und vielleicht wird das niemand sehen, aber das Problem war für mich in der .XresourcesAkte. Ich hatte den URxvt*termNameParameter als die Zeichenfolge falsch interpretiert , die der urxvtFenstertitel werden würde . Es ist in der Tat, was die $TERMUmgebungsvariable wird, es sei denn, die Shell überschreibt es (bash tut es).

Meine Lösung bestand darin URxvt*termName: xterm-256color, der ~/.XresourcesDatei hinzuzufügen . Wie bei jeder Änderung an dieser Datei müssen Sie die Änderungen ausführen xrdb -merge ~/.Xresourcesund vollständig neu starten urxvt(einschließlich urxvtdDaemon-Prozessen), damit sie angezeigt werden.

Blieque
quelle