Warum sollte in RHAS4 in der Bash-Funktion die Umschalttaste "Löschen" anstelle des Löschvorgangs gedrückt werden?

746
mpontillo

Ich habe eine alte RedHat-Box, an der ich etwas arbeiten muss:

$ lsb_release -a LSB Version: 1.3 Distributor ID: RedHatEnterpriseWS Description: Red Hat Enterprise Linux WS release 4 (Nahant Update 7) Release: 4 Codename: NahantUpdate7 

Ich habe ernsthafte Probleme mit der Shell-Eingabeaufforderung. (bash) Insbesondere wenn ich Folgendes in die Befehlszeile eingebe:

$ abcdefghijklmnopqrstuvwxyz 

... dann, wenn ich mzum Beispiel zum Pfeil zurückspringe und drücke Delete, bekomme ich Folgendes:

$ abcdefghijkLMNopqrstuvwxyz 

(Aber es kommt noch schlimmer. Wenn ich dann um Pfeil mehr, sie dreht nur einen Buchstaben nach dem anderen .)

Ich habe meine sttyEinstellungen mit einem Ubuntu-Rechner verglichen, bei dem alles einwandfrei funktioniert, und ich sehe keinen signifikanten Unterschied. Sie sind wie folgt:

$ stty -a speed 38400 baud; rows 58; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke 

Das macht mich verrückt. Gibt es noch etwas, was ich nachschlagen muss? Was könnte das verursachen?

1

2 Antworten auf die Frage

4
mpontillo

Jetzt macht es Sinn ...

Es gab eine verirrte Linie in .profilemeinem Unternehmen, da viele Leute immer noch verwenden ksh:

set -o vi 

Nun, raten viSie mal, was passiert, wenn Sie tippen ~? Das ist richtig, es tauscht den Fall! Und raten Sie mal, was passiert, wenn Sie tippen 3~? Es tauscht den Fall mit 3 Zeichen! (Obwohl ich mich immer noch nicht sicher bin, das inkonsistente Verhalten zu erklären, wo es manchmal eins und manchmal 3 ersetzt ...)

In jedem Fall wurde set -o vidas Problem durch das Entfernen von aus meinem .profile behoben.

Ich würde "Autsch" sagen, wenn das Kommentarsystem mich lassen würde. innaM vor 14 Jahren 0
1
innaM

Gibt es eine .inputrcDatei in Ihrem Home-Verzeichnis? Wenn nicht, versuchen Sie, einen mit diesem Inhalt zu erstellen:

"\e[3~": delete-char 

Wenn es eine solche Datei gibt, macht sie vielleicht etwas, was sie nicht tun sollte.

Danke für die Antwort. Ich habe kein ~ / .inputrc. Ich habe einen mit dem von Ihnen vorgeschlagenen Text hinzugefügt und das Verhalten wird geändert. Jetzt ändert sich die Eingabeaufforderung in (zum Beispiel) "(arg: 3) abcefg", wenn ich "abcdefg" und den Pfeil zurück auf "d" eingebe und auf "Löschen" drücke. Danach wird jedoch auf das alte Verhalten beim Vertauschen von Fällen zurückgegriffen. mpontillo vor 14 Jahren 0
Die "(arg:") Sache erscheint, bevor Sie auf DEL drücken? innaM vor 14 Jahren 0
Die Eingabeaufforderung "(arg: N)" erscheint im vi-Modus, wenn Sie eine Kombination aus "" eingeben.# ", obwohl ich diese Funktionalität nicht verwendet habe, daher bin ich mir nicht sicher, was genau getan wird. Übrigens, danke, dass Sie den Löschschlüssel in seine Escape-Sequenz zerlegt haben. Das hat mir geholfen, das Problem zu lösen. mpontillo vor 14 Jahren 0