MobaXterm-Rücktaste sendet ^ H

7612
DutChen18

Lange Frage: Ich versuche, meinen einfachen HTTP-Server zu testen, indem ich eine Menge Anfragen an Telnet schicke und sehe, wie der Server reagiert. Wenn ich jedoch einen Tippfehler mache und die Rücktaste drücke, um das vorherige Zeichen zu löschen, sendet MobaXterm, ^Hanstatt das Zeichen aus der Zeichenfolge zu entfernen. Wenn ich die Umschalttaste + Rücktaste drücke, funktioniert alles wie gewünscht, aber nach einer Weile wird das sehr nervig ... Gibt es eine Lösung, die nur die Funktionalität der Rücktaste verändert?

Kurze Frage: Ist es möglich, die Rücktaste anstelle des Sendens zum Löschen eines Zeichens zu verwenden ^H?

5

2 Antworten auf die Frage

10
Didier

MobaXterm bietet auch eine Checkbox-Einstellung "Rücktaste sendet ^ H" an, die Sie umschalten können (in MobaXterm globale Einstellungen -> Registerkarte "Terminal").

Wenn Sie eine gespeicherte Sitzung verwenden, müssen Sie diese Sitzung bearbeiten. Wechseln Sie zur Registerkarte "Terminaleinstellungen" und aktivieren Sie das Kontrollkästchen "Rücktaste sendet ^ H".

Ich habe diese Option in keiner der Terminal-Registerkarten. Verwenden von v7.2 unter Windows 8. rmf vor 8 Jahren 0
3
Thomas Dickey

Die mit "Backspace" beschriftete Taste ist umstritten. Technisch gesehen, es sollte schicken, ^Hnur weil der Name der ASCII - Steuerzeichen ist. Andere unterscheiden sich, da ihre Erwartungen von der Historie dieser Funktion beeinflusst wurden (siehe Warum funktioniert meine Löschtaste nicht? ).

In einer Diskussion, in der Sie sagen, dass Sie tippen, ist die übliche Konnotation (es fehlt der Klarstellung), dass Sie ein Terminal gestartet haben und dann ein Programm innerhalb des Terminals ausführen. Für diesen Fall gibt es eine entsprechende Terminalinitialisierung, z. B. unter Verwendung einer Shell und eines Programms wie z stty. Dies wird auf dem lokalen Computer (auf dem Sie tippen) ausgeführt. MobaXterm bietet stty seit Version 3.2 (2011-05-30).

Wenn MobaXterm sendet ^H, sollte Ihre Terminalinitialisierung verwendet werden

stty erase \^H 

Siehe zum Beispiel Was macht der Befehl stty erase ^H? .

Andererseits könnten Sie (in der Frage nicht erkennbar) eine Situation aufgebaut haben, in der das Terminal auf eine Art sttyund Weise gestartet wird, die eine Verwendung der Anwendung und des Terminals für konsistent macht. Oder Sie haben einen anderen Grund, um das Verhalten der Rücktaste zu ändern. PuTTY (wie xterm) stellt dafür zwei Mechanismen bereit:

  • Mit one (ursprünglich in rxvt implementiert) können Sie mit dem shiftModifikator den von "backspace" gesendeten Code zwischen ASCII-Backspace (BS = 8 = ^H) und delete (DEL = 127, oft angezeigt ^?) umschalten .
  • Die andere ist die Terminalkonfiguration (eine Dialogeinstellung im Tastaturbereich des Terminalbereichs ).

xterm bietet einen dritten Mechanismus, dem PuTTY scheinbar fehlt (siehe XTerm-Kontrollsequenzen ):

CSI ? Pm h DEC Private Mode Set (DECSET). Ps = 6 7 -> Backarrow key sends backspace (DECBKM). 

Wenn PuTTY dies implementiert hat, kann Ihre Anwendung das Verhalten des Terminals direkt festlegen. Stattdessen prüft PuTTY während der Initialisierung den Anfangsstatus seiner Konfiguration und (abhängig von der Plattform) auch die im Gerät festgelegten Terminalmodi (wie xterm) und wählt einen Rückschritt im Vergleich zum Löschverhalten, das Sie wie angegeben anpassen oder ändern können.

Wenn ich nichts bekomme, ist dies ein Befehl, den Sie in ein Unix / Linux-Terminal eingeben. Mein HTTP-Server ist definitiv kein Unix / Linux-Terminal. Lange Frage lesen ... DutChen18 vor 8 Jahren 0
Danke für die Klarstellung, ich habe deine erste Antwort falsch verstanden. Eine letzte Frage: Wo kann ich meine Terminal-Initialisierung bearbeiten und `stty erase \ ^ H` hinzufügen. Mein Problem ist bereits gelöst, aber wenn ich keine Antwort auf diese Frage finde, wird es mich stören, bis ich es vergesse ... DutChen18 vor 8 Jahren 0
MobaXterm verwendet bash; Wenn Sie Ihre stty-Befehle zum `.bashrc` im Startverzeichnis für das Terminalfenster hinzufügen, werden diese in MobaXterm ausgeführt. Jetzt eine Kopie prüfen (Personal Edition 7.7) ... die Verwendung von `^ H`. Durch Drücken von Strg + Rücktaste wird `^?` In dieser Version gibt es kein Kontrollkästchen für die Rücktaste, aber die Verwendung von Steuerung + Rücktaste funktioniert gut genug. Thomas Dickey vor 8 Jahren 0