Warum ändert sich das Verhalten von Backspace in vim mit SSH?


7

Wenn ich über ssh auf einen bestimmten Computer zugreife, ändert sich das Verhalten von Backspace in vim. Anstatt Zeichen zu löschen, habe ich ein ^? .

Das Problem ist, dass dieser Computer als Gateway fungiert und dieses Problem sich ausbreitet, wenn ich auf einen Computer hinter diesem Gateway zugreife (wenn ich einen dieser Computer innerhalb der Domäne ssh-, ohne die Domäne zu durchlaufen), tue ich das nicht habe dieses Problem) ...

Das ist keine große Sache, aber es ist wirklich nervig.

Irgendeine Idee ?

Antworten:


9

Es ist normalerweise eine Nichtübereinstimmung zwischen dem, was in Ihrer Shell konfiguriert ist, und dem, was in Ihrem Terminalemulator konfiguriert ist.

Einige verwenden die Rücktaste (0x08), andere DEL (0x7f). Wenn Sie innerhalb Ihrer Terminalsitzung ausgeführt werden

stty -a

Sie sehen eine Linie wie:

intr = ^C; quit = ^\; erase = ^?; kill = ^U; ...

Dieses Löschen ist das DEL-Zeichen. Sie müssen entweder Ihr SSH für die Übertragung dieses Zeichens konfigurieren oder Folgendes ausführen:

stty erase '^H'

die Shell ändern.

Ich weiß, dass Putty zum einen das übertragene Zeichen ändern kann, wenn Sie die Rücktaste drücken. Ich denke, es ist irgendwo im Terminalbereich vergraben (zumindest in Version 0.58), aber ich habe Windows nicht zur Hand, um es zu überprüfen.

Es ist jedoch nicht wirklich programmierbezogen, so dass Sie möglicherweise feststellen, dass dies auf superuser.com verschoben wird.


danke ... ich wusste, dass es nicht "wirklich" mit der Programmierung zu tun hat, aber ich wusste nicht, woher der Fehler stammt.

1
Es befindet sich unter Terminal-> Tastatur -> "The BackSpace Key", falls jemand Probleme hat, es zu finden
Katerberg
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.