Ich habe gerade Cygwin installiert und die BACKSPACE-Funktion ist nicht vorhanden. Wenn ich also die Backspace-Taste drücke, bekomme ich ein Leerzeichen.
Ich habe versucht, dieses Problem bei Google zu recherchieren, habe jedoch keine schlüssigen Ergebnisse erhalten.
stty
Befehls?Antworten:
In meinem Fall funktionierte die Rücktaste nach dem Erstellen der leeren Datei ~ / .vimrc überhaupt nicht. Nach Änderung hat es funktioniert
Stellen:
setze bs = 2
in .vimrc
Dies finden Sie unter http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
quelle
Arbeitete für mich: Geben Sie in der Windows-Eingabeaufforderung
Dies fügt es dem hinzu
.bashrc
und alles kann gut funktionieren!quelle
TERM
Umgebungsvariablemsys
über die Einstellungen der Windows-Umgebungsvariablen wie in StackOverflow vorgeschlagen festlegen lassen , um beigit
Problemen unter Windows zu helfen . Das einfache Zurücksetzen aufcygwin
in.bashrc
hat nicht geholfen, das Entfernen desTERM
Eintrags aus den Windows-Einstellungen jedoch. Danke, dass du mich in die richtige Richtung gelenkt hast!Ich habe eine Lösung für ein Problem gefunden, das sich wie oben dargestellt hat.
Führen Sie einfach das Cygwin-Setup erneut aus und installieren Sie
termcap
und erneutterminfo
. Wenn Sie das Suchfeld verwenden, können Sie sie schnell finden. Anstatt für jedes "Behalten" zu sagen, klicken Sie darauf, damit "Neu installieren" angezeigt wird. Möglicherweise müssen Sie das Kontrollkästchen "Veraltet ausblenden" aktivieren, damitterm
es in der Suche angezeigt wird .Mein Terminfo-Ordner fehlte vollständig. Keine Ahnung warum. Hoffe das hilft jemandem.
quelle
Bearbeiten Sie Ihre Datei c: \ cygwin \ cygwin.bat
Platziere dies:
SET TERM=cygwin
Vor:
bash --login -i
quelle
Wenn Sie den TERM-Typ festlegen, teilen Sie dem Host mit, welches TERMCAP zum Zeichnen im Terminalfenster verwendet werden soll. Die meisten * NIX-Hosts wissen nicht, was ein 'Cygwin'-Termtyp ist, daher wissen sie nicht, wie man Zeichen auf dem Bildschirm manipuliert, z.
Wenn Sie die TERM-Variable in CYGWIN vor Telnet oder SSH auf einen Host ändern, erhalten Sie viel bessere Ergebnisse:
In CYGWIN:
Der Host weiß jetzt, dass Sie einen ANSI-Terminaltyp haben, und kann anhand seiner ANSI-TERMCAP-Datei mitteilen, wie er kommunizieren soll.
Wenn das nicht funktioniert und mit Ausnahme der Rücktaste fast alles ordnungsgemäß funktioniert, können Sie "getty" auf dem Host, mit dem Sie eine Verbindung herstellen, neu programmieren, um zu erkennen, was Sie möchten Lösung von Backspace / Löschproblemen):
Sie senden eine SSH- oder Telnet-Verbindung zu Ihrem Host und führen auf dem Host den Befehl stty aus. Wenn Sie die "BACKSPACE" -Taste drücken und es nicht rückwärts geht, sucht das Terminal wahrscheinlich nach einem anderen Zeichen, das auf dem TERM-Typ basiert. Anstatt alles zu durchforsten, können Sie die Backspace-Definition manuell in der CLI oder in Ihrer .profile-, .bashrc- oder .bash-Profildatei in Ihrem $ HOME-Verzeichnis festlegen, wie Sie es wünschen oder basierend auf der Version von * NIX, die Sie sind mit.
Wenn Sie also ^ H drücken (das ist STRG-H) und Ihre Taste sichert, aber Sie die BACKSPACE-Taste drücken, wird stty nicht wie folgt verwendet:
Meistens sieht es so aus:
Das '\' sagt ihm, dass das nächste Zeichen ein nicht druckbares Steuerzeichen sein wird und akzeptiert es, nicht "interpretiert" es.
Sobald Sie [ENTER] gedrückt haben, sollten Sie in der Lage sein, Ihre [BACKSPACE] -Taste zu drücken und sie mit der Rücktaste zu löschen.
Sie können dies in Ihrer Shell einstellen.
Wenn Sie jetzt immer noch VI verwenden, funktioniert die Übersetzung manchmal nicht und Sie müssen tatsächlich ^ H in vi eingeben, aber das ist in Ordnung.
Du hättest sagen können:
stty erase k [ENTER]
und es hätte buchstäblich "k" in das Löschen / Löschen-Zeichen übersetzt.
-D
quelle
Ok, ich hatte dieses Problem mit der manuellen Aktualisierung einer Cygwin-Installation. Jedenfalls habe ich diesen Beitrag gefunden , der mich zur Lösung für meine Installation führte.
Der ältere Cygwin hatte eine Datei
/etc/terminfo/c/cygwin
, aber im neueren Cygwin erwartete er, dass es sich um eine Datei handelt/etc/terminfo/63/cygwin
.Nachdem ich die "cygwin" -Datei an diesen Speicherort kopiert hatte, funktionierte die Bash-Shell-Rücktaste einwandfrei, ebenso wie die Tabulatortaste und andere.
quelle
Das Ändern der
TERM
Variablen incygwin
und das HinzufügenSET TERM=cygwin
zur.bat
Datei hat bei mir nicht funktioniert, aber ich habe es behoben. Folgendes habe ich getan: Bei der Installation im Paketmanager habe ich die Installation ausgewähltxterm: X11 terminal emulator
, nach der InstallationSET TERM=xterm
der.bat
Datei (wie oben vorgeschlagen) hinzugefügt , das Terminal gestartet und im Menü Optionen -> Terminal die Option Terminal ausgewähltType=xterm
und dann das Terminal neu gestartet. Backspace hat richtig funktioniert!Hinweis: Wenn Sie cygwin bereits installiert haben, führen Sie das Installationsprogramm erneut aus und fügen Sie das xterm-Paket hinzu.
Ich renne:
quelle
Ich stimme allen Antworten hier zu. Hier gibt es jedoch einen weitaus einfacheren Weg: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
quelle
Arbeitete für mich: Geben Sie in der Windows-Eingabeaufforderung
Dies fügt es dem .bash_profile hinzu (nicht .bashrc, was bei mir nicht funktioniert hat, und mit einem Zeilenumbruch)
quelle
Nachdem ich 2 Tage online gelesen habe. Ich fand dieses, das für mich arbeitete. Ich weiß nicht, ob dieser Fall zu jedem passt. Aber dank Yuksel hat es wie ein Zauber für mich geklappt
Das Problem war mit "termInfo" -Dateien, Schritte, die er vorgeschlagen hat
Bestätigen Sie, ob das Problem mit dem Terminal zusammenhängt, indem Sie im CygWin-Terminal Folgendes eingeben: (Ignorieren Sie die Warnung.)
less my_session.log
Rufen Sie die Informationen zu 'TermCap' ab, zu welchem Pfad oder Verzeichnis es gehört, indem Sie in CygWin Terminal den folgenden Code eingeben
infocmp -C
Sie sollten entweder bekommen
Oder Sie beginnen mit einem Text wie "Über Infocmp rekonstruiert ...".
Führen Sie den folgenden Code in CygWin Terminal aus, um die Diagnose auszuführen und zusätzliche Details zum Pfad zu erhalten, in dem die Dateien gespeichert werden
cygcheck -s
Das sollte Ihnen ähnlich wie im folgenden Text antworten
vom ausgang hast du ab dem 3. schritt bekommen. Kopieren Sie nun alle Dateien und Ordner in / usr / share / terminfo in den Ordner C: \ cygwin \ etc \ terminfo. HINWEIS : Dieser Ordner kann je nach Installation von Ihrem Ordner abweichen
quelle
Bitte folgen Sie dem Bild unten
options
Keys
RegisterkarteBackarrow sends ^H
Dies ist das einzige, was bei mir funktioniert hat, vor allem, wenn Sie SSH auf einem Server
stty erase ^?
ausführen müssen (nicht alle Fixes funktionieren), das ich früher zu meinem .bashrc hinzugefügt habe, aber dies hat das Problem nur in 80% der Fälle behoben.quelle
Ich habe dein Problem noch nie erlebt. Versuchen Sie, Terminal Emulator Mintty ( http://code.google.com/p/mintty/ ) zu installieren .
Es ist über das Cygwin-Installationsprogramm verfügbar. Bestes Terminal für Cygwin.
quelle