Ich bin neu in vi , eigentlich habe ich begonnen habe vi von heute zu lernen , und ich habe das Verhalten der steckengeblieben Backspace Schlüssel. Als ich vi auf meinem Ubuntu 12.04 zum ersten Mal startete, funktionierte meine Rücktaste tatsächlich normal, aber danach hat sie sich merkwürdig verhalten. Immer wenn ich im Einfügemodus die Rücktaste drücke, wird nur eine Stelle nach links verschoben, anstatt das Zeichen zu löschen. Wie kann ich die Standard-Backspace-Funktionalität wiederherstellen? Bitte beachten Sie, dass ich vim nicht installieren oder keine Kompatibilität einstellen möchte.
10
vim
.Antworten:
Manchmal ist der
vi
Befehl ein Alias fürvim
und wenn er aufgerufen wird,vi
aktiviert er seinen vi-Modus.Selbst im herkömmlichen Modus löscht die Rücktaste das Zeichen, zeigt es jedoch nicht sofort als gelöscht an. (Nach dem Drücken von ESC sind die Zeichen verschwunden.)
Vermutlich müssen Sie wählen, ob Sie
vi
das mit dem beschriebenen Verhalten verbundene odervim
das verwenden möchten, was es so macht, wie Sie es erwarten.quelle
Überprüfen Sie, ob Sie tatsächlich Plain
vi
Via verwenden$ vi --version | head -n 1
Dies gibt auf meinem Computer (Debian 7)
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)
vim kann dazu gebracht werden, sich eher wie vi zu verhalten. Dies kann durch Eingabe des Befehls
vi
anstelle der Befehlszeile erfolgenvim
, in dervi
nur ein Sym-Link zu vorhandenvim
ist. In diesem Fall wird vim im vi-Modus geöffnet. Sie können dies mit überprüfen:set compatible?
.Wie von der vorherigen Antwort erwähnt, wird die Wirkung des Backspace nur sichtbar nach dem Verlassen in ,
insert mode
wennset compatible
aktiviert ist.Hinweis: Im vi-kompatiblen Modus können Sie keine Rücktaste über Text
insert mode
eingeben, der zuvor (vor der Eingabe ) eingegeben wurde, oder über EOLs oder Einrückungen ininsert mode
. sehen:help 'bs'
Probieren Sie die verschiedenen Einstellungen aus, um ihre Bedeutung zu verstehen: Geben Sie im Einfügemodus Zeichen / Zeilenumbrüche und Einrückungen ein, beenden Sie den Einfügemodus und geben Sie ihn erneut ein. Versuchen Sie dann, den Abstand zurückzusetzen.
Benutzer, die mit dem Verhalten von vi nicht vertraut sind und nicht darauf bestehen, einfaches vi zu verwenden (ohnehin nicht empfohlen), sollten dies tun
:set backspace=indent,eol,start
. Afaik unter Debian ist normalerweise eine systemweite Konfigurationsdatei mit dieser Einstellung installiert.Sie können die aktuelle Einstellung über erhalten
:set bs?
.quelle
Erstellen Sie eine neue Datei im Benutzer-Ausgangsverzeichnis mit dem Namen .vimrc, falls diese noch nicht vorhanden ist. Hier erstellen und bearbeiten wir gleichzeitig mit vi
Fügen Sie die folgenden Befehle hinzu, darunter das Deaktivieren des Kompatibilitätsmodus und das Löschen der Rücktaste:
Speichern und beenden Sie die Datei mit
Das Ausschalten des Kompatibilitätsmodus ermöglicht die Verwendung von Pfeiltasten, an die wir alten vi-Leute gewöhnt sind.
Da wir beim Erstellen der Datei sudo'd, wird der Besitz der Datei wahrscheinlich root sein. Sie können die Datei an den Benutzer weiterleiten.
In meinem Fall war dies für einen Himbeer-Pi, also ist der Benutzer und die Gruppe pi:
Jetzt vi wieder starten und genießen!
quelle
set nocp
hat den Trick für mich gemachtIch denke, der beste Weg wäre, sich das VI / VIM-Cheatsheet anzusehen: http://www.viemu.com/vi-vim-cheat-sheet.gif
Aktivieren Sie den normalen Modus (ESC) und dann UMSCHALT + X.
quelle
einfach in dein
~/.zshrc
quelle