In my case backspace was not at all working after creating blank ~/.vimrc. Following change made it work
Put:
set bs=2
in .vimrc
Found this at http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
Ich habe gerade Cygwin installiert und die BACKSPACE-Funktion ist nicht vorhanden, dh wenn ich die Rücktaste drücke, bekomme ich ein Leerzeichen.
Ich habe versucht, dieses Problem bei Google zu recherchieren, fand aber nichts Schlüssiges.
In my case backspace was not at all working after creating blank ~/.vimrc. Following change made it work
Put:
set bs=2
in .vimrc
Found this at http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
Ich habe eine Lösung für ein Problem gefunden, das sich wie oben gezeigt hat.
Starten Sie einfach Cygwin-Setup erneut und installieren Sie termcap
und terminfo
. Wenn Sie das Suchfeld verwenden, können Sie sie schnell finden. Klicken Sie nicht auf "Beibehalten", sondern auf "Neu installieren". Möglicherweise müssen Sie das Kontrollkästchen "Hide Obsolete" aktivieren, um term
in der Suche angezeigt zu werden .
Mein terminfo-Ordner fehlte völlig. Keine Ahnung warum. Hoffe das hilft jemandem.
Für mich gearbeitet: Geben Sie in die Windows-Eingabeaufforderung ein
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
Dies fügt es dem hinzu .bashrc
und alles kann gut funktionieren!
Bearbeiten Sie Ihr c: \ cygwin \ cygwin.bat
Platzieren Sie dies: SET TERM=cygwin
Vor: bash --login -i
Wenn Sie den TERM-Typ festlegen, teilen Sie dem Host mit, welche TERMCAP im Terminalfenster gezeichnet werden soll. Die meisten * NIX-Hosts wissen nicht, was ein "cygwin" -Termintyp ist, und wissen nicht, wie sie die Zeichenmanipulation auf dem Bildschirm wie Einfügen, Löschen, Scrollen, Schriftwechsel usw. durchführen.
Wenn Sie die TERM-Variable in CYGWIN vor Telnet oder SSH in einen Host ändern, erhalten Sie wesentlich bessere Ergebnisse:
In CYGWIN:
d@test01 ~ $ TERM=ansi;export TERM $ ssh suntest1 d@suntest1's password: Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001 d pts/1 test01 Fri Oct 12 00:15 still logged in $ echo $TERM ansi $_
Der Host weiß jetzt, dass Sie über einen ANSI-Terminaltyp verfügen, und er kann seine ANSI-TERMCAP-Datei verwenden, um der Kommunikation mitzuteilen.
Wenn Sie das nicht zum Laufen bringen können und die meisten Funktionen außer der Rücktaste einwandfrei funktionieren, können Sie "getty" auf dem Host, zu dem Sie eine Verbindung herstellen, umprogrammieren, um zu erkennen, was Sie möchten Lösung von Problemen mit Rückschritt / Löschen):
Sie ssh oder telnet zu Ihrem Host und im Host führen Sie den Befehl stty aus. Wenn Sie die Taste "BACKSPACE" drücken und nicht rückwärts gehen, liegt dies daran, dass das Terminal wahrscheinlich nach einem anderen Zeichen sucht, das auf dem Typ TERM basiert. Anstatt all das durchzugehen, können Sie die Backspace-Definition manuell in der CLI oder in Ihren .profile, .bashrc- oder .bash-Profildateien in Ihrem $ HOME-Verzeichnis festlegen, je nachdem, was Sie möchten oder basierend auf * NIX mit.
Wenn Sie also ^ H (das ist CONTROL-H) drücken und Ihre Taste sichert, Sie aber die BACKSPACE-Taste drücken, wird stty nicht wie folgt verwendet:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
Meistens sieht es so aus:
stty erase \^?[ENTER]
Das '\' sagt aus, dass das nächste Zeichen ein nicht druckbares Steuerzeichen sein wird, das akzeptiert wird, nicht "interpretiert" wird.
Wenn Sie [ENTER] drücken, sollten Sie die Taste [BACKSPACE] drücken können, um die Eingabe rückgängig zu machen / zu löschen.
Sie können dies in Ihrer Shell festlegen.
Wenn Sie immer noch VI verwenden, funktioniert die Übersetzung manchmal nicht und Sie müssen tatsächlich ^ H in vi eingeben, aber das ist in Ordnung.
Sie hätten sagen können:
stty löschen k [ENTER]
und es hätte buchstäblich 'k' in das Löschen / Löschen-Zeichen übersetzt.
-D
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 wurde erwartet, dass es sich um eine Datei handelt /etc/terminfo/63/cygwin
.
Nachdem ich die "cygwin" -Datei an diesen Speicherort kopiert hatte, funktionierte der Bash-Shell-Backspace-Schlüssel ebenso wie der Tabulator und andere.
Das Ändern der TERM
Variablen in die Datei cygwin
und das Hinzufügen SET TERM=cygwin
zu dieser .bat
Datei funktionierte für mich nicht, aber ich habe sie behoben. Hier habe ich Folgendes getan: Im Paketmanager habe ich aufgrund der Installation die Installation ausgewählt xterm: X11 terminal emulator
. Nach der Installation habe ich SET TERM=xterm
die .bat
Datei (wie oben vorgeschlagen) hinzugefügt, das Terminal gestartet und im Menü Optionen -> Terminal das Terminal ausgewählt Type=xterm
und dann das Terminal neu gestartet. Backspace hat richtig funktioniert!
Hinweis: Wenn Sie cygwin bereits installiert haben, führen Sie einfach das Installationsprogramm erneut aus und fügen Sie das xterm-Paket hinzu.
Ich renne:
Ich stimme allen Antworten hier zu. Es gibt jedoch einen viel einfacheren Weg, den Sie hier finden können: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
Für mich gearbeitet: Geben Sie in die Windows-Eingabeaufforderung ein
(echo; echo "export TERM=cygwin") >> ~/.bash_profile
Dies fügt es dem .bash_profile hinzu (nicht .bashrc, was bei mir nicht funktionierte und mit einem Zeilenumbruch)
Nachdem ich 2 Tage Zeit hatte, um online Dinge zu lesen. Ich habe dieses gefunden, das für mich gearbeitet hat. Ich weiß nicht, ob dieser Fall zu jedem passt. Dank Yuksel hat es mir aber sehr gut gefallen
Das Problem war bei 'termInfo' -Dateien, die er vorgeschlagen hat
Bestätigen Sie, ob das Problem mit dem Terminal zusammenhängt, indem Sie das CygWin-Terminal eingeben. Dies sollte die Warnung anzeigen.
less my_session.log
WARNUNG: Terminal ist nicht voll funktionsfähig
Rufen Sie die Informationen von 'TermCap' ab, zu welchem Pfad oder Verzeichnis es gehört, indem Sie den folgenden Code in CygWin Terminal eingeben
infocmp -C
du solltest entweder bekommen
infocmp: terminfo-Datei konnte nicht geöffnet werden / usr / share / terminfo / 63 / cygwin
Oder Sie erhalten auch etwas, das mit einem Text wie "Rekonstruiert über Infocmp ..." beginnt.
Führen Sie den folgenden Code in CygWin Terminal aus, um die Diagnose auszuführen, um weitere Informationen zum Pfad zu erhalten, in dem die Dateien gespeichert werden
cygcheck -s
das sollte dir ähnlich dem unten stehenden Text entsprechen
Cygwin-Konfigurationsdiagnose
...
C: / cygwin / system binary, noacl
C: / cygwin / bin / usr / bin, binär, noacl
C: / cygwin / lib / usr / lib, binär, noacl
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binär, noacl
cygdrive prefix / cygdrive benutzer binär, noacl, posix = 0, auto
...
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binär, noacl
Von der Ausgabe haben Sie den 3. Schritt erhalten. Kopieren Sie jetzt alle Dateien und Ordner, die sich in / usr / share / terminfo befinden, in den Ordner C: \ cygwin \ etc \ terminfo. HINWEIS : Dieser Ordner kann je nach Installation von Ihrem Ordner abweichen