it-swarm.com.de

Die Rücktaste im Einfügemodus in vi löscht das Zeichen nicht

Ich bin neu in vi, eigentlich habe ich angefangen, vi von heute an zu lernen, und ich bin beim Verhalten der Rücktaste hängen geblieben.

Eigentlich funktionierte meine Backspace-Taste normal, als ich vi auf meinem Ubuntu 12.04 zum ersten Mal startete, aber danach hat sie sich merkwürdig verhalten. Jedes Mal, wenn ich im Einfügemodus die Rücktaste drücke, wird das Zeichen nur um eine Stelle nach links verschoben, anstatt es zu löschen.

Wie kann ich die Standard-Backspace-Funktionalität wiederherstellen? Bitte beachten Sie, dass ich vim nicht installieren oder keine Kompatibilität festlegen möchte.

Das ist das richtige Verhalten für vi und löscht das Zeichen. Es zeigt es nur nicht an, indem es durch ein Leerzeichen wie in vim ersetzt wird. Es wird sichtbar, wenn Sie das gelöschte Zeichen mit einem anderen Zeichen überschreiben oder zurück in den Befehlsmodus wechseln.

Z.B. Wenn Sie mit dem Befehlsmodus in einer leeren Zeile beginnen, enthält die folgende Zeile fo:

ifooBackspaceEsc

Bevor du das triffst Esc Taste wird in der Zeile foo angezeigt, aber das letzte o wurde als "Löschspalte" markiert. Siehe http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (hauptsächlich Punkt 4 unter dieser Überschrift) -H)

38
geirha

Hier ist die einfachste Lösung.
Öffnen Sie ein Terminal, wechseln Sie in das Ausgangsverzeichnis und geben Sie Folgendes ein

vi .vimrc

wenn Sie eine neue Datei öffnen, fügen Sie diese Zeilen der Datei hinzu und beenden Sie sie durch Speichern

$ set nocompatible
$ set backspace=2
71

Sie müssen in den Einfügemodus wechseln, indem Sie den Cursor mit i bewegen. Es gibt andere Möglichkeiten, Zeichen direkt zu löschen. Sie können eine PowerPoint-Datei herunterladen, die ich beim Unterrichten einer Klasse in VI verwende hier .

Es klingt, als ob Sie sich im "Command" -Modus befinden. So bewegen Sie den Cursor:
H = Links, J = Oben, K = Unten, L = Rechts

Sobald Sie Ihren Cursor positioniert haben, können Sie Löschen Text wie folgt eingeben:
x Löscht das Zeichen nter den Cursor
X Löscht das Zeichen vor dem Cursor
dw Löscht vom Cursor zum nächsten Wort
dd Löscht die Zeile der Cursor ist eingeschaltet.

Um Text eingeben, können Sie einen der Texteingabemodi verwenden.
a Fügt dem right ​​des Cursors Text hinzu
A Fügt dem Ende der aktuellen Zeile Text hinzu
i Fügt dem left ​​des Cursors Text hinzu
I Fügt dem beginin der aktuellen Zeile einen Test hinzu
o Öffnet eine neue Zeile nten die aktuelle Zeile und versetzt Sie in den Texteingabemodus
O Öffnet eine neue Zeile Über die aktuelle Zeile und versetzt Sie in den Texteingabemodus

Verwenden Sie Esc, um den Texteingabemodus zu beenden und zum Befehlsmodus zurückzukehren.

Um Rückgängig Änderungen: (Ein Schüler Favorit)
u Macht den letzten Befehl rückgängig
U Undo alle Änderungen zur ** aktuellen Zeile **

Speichern/Beenden: :w Schreibt (speichert) die Datei und bleibt geöffnet
:wq Schreibt (speichert) die Datei und beendet ​​VI
:q Beendet (Exits) wenn Sie keine Änderungen vorgenommen haben
:q! Beendet (Exits) ohne zu speichern Änderungen
ZZ Schreibt (speichert) die Datei und beendet ​​VI (wie :wq)

22
Argusvision

Installieren Sie das vollständige vim-Paket, um die Funktionen für die Rücktaste und die Pfeiltasten zu erhalten

Sudo apt-get update
Sudo apt-get install vim
13