Als ich im vi
Editor versuchte, die Pfeiltasten im Einfügemodus zu verwenden, wurden die folgenden Zeichen in den Editor eingefügt:
- denn ↓ich bekomme B,
- denn ↑ich bekomme A,
- denn ←ich bekomme D,
- denn →ich bekomme C.
Bitte helfen Sie mir bei der Lösung dieses Problems.
text-editor
vi
bvb
quelle
quelle
Antworten:
Wenn Sie noch keine
.vimrc
Datei in Ihrem Ausgangsverzeichnis haben, erstellen Sie eine davon:Fügen Sie diese Zeile oben in die Datei ein:
Speichern Sie die Datei und dies sollte das Problem für Sie beheben. :)
quelle
vi
anstelle von verwendenvim
, müssen Sie die gleiche Konfiguration vornehmen, aber in der~/.exrc
Datei.Durch die Installation des
vim
Pakets wird das Problem behoben :Es gibt viele gute vim / vi-Tutorials auf YouTube oder im Internet im Allgemeinen. Informationen zu Ihrem Problem finden Sie im Artikel 8 Grundlegendes zur Navigation in Vim Editor .
Dann öffnen Sie die Dateien wie gewohnt weiter:
quelle
Mit aktivieren Sie
vi
beim Anklicken iden Befehl zum Einfügen von Text.Mit diesem Befehl können Sie Text in Ihre Datei einfügen.
Und richtig, beim Klicken:
Bis Sie diesen Befehl deaktivieren.
So deaktivieren Sie einen Befehl in
vi
: Klicken EscSie einfach auf . Dann können Sie Ihre Pfeiltasten wieder normal verwenden:
Zu Ihrer Information, hier sind einige
vi
Befehle:Aus dieser Quelle .
:x
Return beenden vi , geänderte Datei zu schreiben, um Datei in ursprünglichem Aufruf namens:wq
Return beenden vi , geänderte Datei auszuschreiben in ursprünglichem Aufruf benannt Datei:q
Return beenden (oder Ausgang) vi:q!
Return vi zu verlassen , obwohl haben letzte Änderungen nicht für diesen vi Anruf gespeichert↓ Cursor eine Zeile
↓ nach unten bewegen Cursor eine Zeile nach oben
← bewegen Cursor ein Zeichen
→ nach links bewegen Cursor ein Zeichen nach rechts bewegen
u
mache rückgängig, was du gerade getan hast; Ein einfaches Umschalten,.
um alles, was Sie gerade getan haben, zu wiederholeni
Einfügen Text vor dem Cursor, bis EschitI
Insert Text am Anfang der aktuellen Zeile, bis Eschita
append Text nach Cursor, bis EschitA
append Text der aktuellen Zeile zu Ende, bis Escgetroffeno
offen und stellt Text in einer neuen Zeile unter dem aktuellen Zeile, bis EscgetroffenO
geöffnet und füge den Text in eine neue Zeile über der aktuellen Zeile ein, bis Escdu darauf drückstr
ersetzen einzelnes Zeichen unter dem Cursor (nicht Escerforderlich)cw
ändert das aktuelle Wort mit neuem Text, mit dem Zeichen unter dem Cursor starten, bis EscTrefferx
löschen einzelnes Zeichen unter CursorNx
löschen N Zeichen, mit Zeichen unter Cursor beginnenddw
löscht mit Zeichen unter Cursor das Wort beginntC
Änderung (ersetzen) , um die Zeichen in der aktuellen Zeile, bis EscTrefferD
löscht den Rest der Leitung, mit aktueller Cursorpositiondd
Löschen gesamte aktuelle ZeileNdd
löschen N Zeilen mit der gegenwärtigen Zeile beginnt; Beispiel: 5dd löscht 5 Zeilen.yy
Kopieren Sie die aktuelle Zeile in den Puffer.Nyy
Kopieren Sie die nächsten N Zeilen einschließlich der aktuellen Zeile in den Puffer.p
Fügen Sie die Zeilen im Puffer in den Text ein die aktuelle Zeile0
(Null) bewegen Cursor auf der aktuellen Zeile zu beginnen (die mit dem Cursor) zu$
bewegen Cursor an das Ende der aktuellen Zeilew
bewegen Cursor an den Anfang des nächsten Wortesb
bewegen Cursor zurück zum Anfang des Wortes vorhergehenden:0
Returnoder1G
bewegen Cursor auf erste Zeile in der Datei:n
ReturnodernG
bewegen Cursor in Zeile n:$
Returnoder Cursor in die letzte Zeile der DateiG
bewegen/string
Suche nach vorn für das Auftreten von Zeichenfolge in?string
Textsuche rückwärts für das Auftreten von Zeichenfolge in Textn
bewegt zum nächsten Auftreten von SuchzeichenfolgeN
bewegt zum nächsten Auftreten von Suchzeichenfolge in entgegengesetzter Richtungquelle
:help compatible
: "Standardmäßig ist diese Option aktiviert und die Vi - Standardeinstellungen werden für das verwendet Diese Standardeinstellung wurde für diejenigen Benutzer ausgewählt, die Vim genau wie Vi verwenden möchten und nicht einmal über die "kompatible" Option informiert sind (wollen). "Um das Drucken von Buchstaben beim Drücken von Pfeilen im Bearbeitungsmodus zu deaktivieren, haben Sie folgende Möglichkeiten
(Datei erstellen, falls nicht vorhanden) und Zeile hinzufügen
set nocompatible
und speichern.quelle
:version
für Ladereihenfolge (auch:h .exrc
oder:h init
). Ich nehme an, jemand möchte, dass eine Einstellung sowohl in vi als auch in vim angewendet wird, oder er könnte eine bloße Gewohnheit sein.Es gibt drei Modi im vi-Editor, nämlich:
Wenn Sie eine Datei öffnen, befinden Sie sich im Standardmodus. Nun , wenn Sie möchten , eine bestimmte Position im Text zu gehen, verwenden Sie einfach die Pfeiltasten oder die Nutzung h, j, k, lTasten. Beachten Sie, dass dies nur funktionieren würde , wenn Sie nicht gedrückt haben i(oder ein anderer Eingabemodus Eingabe Befehl wie a, A, I).
Der Grund für 'B' kann sein, dass die Pfeiltasten im Eingabemodus nicht als Pfeiltasten fungieren. Drücken Sie also Esc, um jederzeit in den Standardmodus zu wechseln. Wenn in dem Eingabemodus drücken verschieben ioder a, und zu navigieren drücken Sie einfach iTaste und mit den Pfeiltasten oder h, j, k, l.
quelle
Ich hatte genau das gleiche Problem, aber nicht nur auf meinem lokalen Rechner, sondern auch bei Verbindungen über Putty auf einem Sles-Rechner in einer Win7-VM über einen Citrix-Empfänger. Sowohl der lokale Host als auch die Remote-Hosts zeigten nach einer Neuinstallation von Ubuntu genau das gleiche Problem.
Nachdem ich das herausgefunden habe
Verursacht dieses seltsame VI-Verhalten Ich habe das Paket console-data installiert, das das Problem behebt!
quelle
Hinweis:
Es gibt gute Informationen in den anderen Beiträgen, aber keiner der Beiträge versuchte zu erklären, warum dieses Verhalten passiert ist. Viele Menschen müssen in Zukunft darüber stolpern. Könnten Sie diese Frage auch als gelöst markieren, da Ihnen wahrscheinlich einer der vorherigen Beiträge geholfen hat?
Hier ist eine Erklärung :
Vi ist ein Editor, der schon lange existiert und auf die Unix-Systeme zurückgeht. Es ist ein gutes Tool, aber es wurde wiederholt und jetzt gibt es ein besseres. Vim wurde später geschrieben und ist diese Iteration. Die Leute bezeichnen vi allgemein als 'vim-minimal' und vim ist eine "verbesserte" Version von vi. Sie können sich das so vorstellen: vi ist der Kern und vim erweitert es.
Wahrscheinlich haben Sie das Verhalten entdeckt :
Damit Sie dieses Problem entdeckt haben, haben Sie " i " gedrückt , um in den Einfügemodus zu wechseln, und anschließend mit den Pfeiltasten die richtige Linie und den richtigen Bearbeitungspunkt gesucht. Dies ist der Grund für Ihr unerwartetes Zeichenproblem.
Lösung 1 oder 2
1)
vi someFile
Gehen Sie bei Verwendung von vi zuerst zum Bearbeitungspunkt und rufen Sie dann den Einfügemodus auf.2)
vim someFile
Benutze einfach vim von Anfang an.Ich kann nicht genug betonen, um das Handbuch (Manpages) zu lesen oder -h als Hilfe zu verwenden. Sobald Sie sich an die Muster in der Shell gewöhnt haben, werden Manpages zu Ihrem besten Freund. Beispiel:
man vi
oderman vim
Überprüfen Sie, ob Vim installiert ist .
Öffne ein Konsolenfenster und führe aus:
dpkg --list | grep vim
Wenn Sie etwas Ähnliches erhalten, können Sie einfach anfangen, vim zu verwenden.
Wenn die Eingabeaufforderung nichts anzeigt, ist vim nicht installiert. Verwenden Sie die folgenden Beispiele, um Ihre Repositorys zu aktualisieren und anschließend vim zu installieren.
Wenn Sie vi oder vim nur verwenden, wenn Sie im Internet nach Lösungen suchen und vergessen, Eingaben zu machen
vim
, gibt es eine Möglichkeit, diese für die Zukunft zu beheben. Ich warne Sie, aufmerksam zu sein. Sie können einen Alias verwenden, um vi mit einem Verweis auf vim zu überschreiben, sodass Sie vim unabhängig davon, was Sie in der seltenen Zukunft eingeben, ohne dieses "oops!" Moment. Sie können einen Alias später jederzeit löschen.Typ
vim .bashrc
. Gehen Sie in die leere Zeile mit nur einem~
(oder einer anderen Zeile, die mit einem beginntalias
(also zusammen gruppiert ist) und drücken Sie dann die Taste i, um in den Einfügemodus zu wechseln. Geben Sie in einer eigenen separaten Zeile Folgendes ein:Drücken Sie
Esc
und geben Sie dann ein:wq
. Jetzt müssen Sie die Datei neu laden. Typsource .bashrc
Jede andere Shell, die nach diesen Änderungen geöffnet wird, lädt automatisch die .bashrc-Datei.quelle
Alle Erklärungen sind etwas bizarr. Ich habe vi aber nicht vim installiert.
Alternativen prüfen:
/etc/alternatives/vi
→/usr/bin/vim.tiny
So
vi
ist esvim.tiny
, und es nutzt/etc/vim/vimrc.tiny
.Und in
vimrc.tiny
der folgenden Zeile finden Sie:Welches ist fast das einzige, was in dieser Datei. Beachten Sie, dass in
/etc/vim/vimrc
es verwendet wirdnocompatible
.Installieren Sie also entweder vim oder ändern Sie die
vimrc.tiny
Datei oder erstellen Sie eine eigene,~/.vimrc
die die folgende Zeile enthalten sollte:quelle
~/.vimrc
und Einstellungnocompatible
: askubuntu.com/a/353944/158442 oder 3. eine Systemdatei bearbeiten. Nur der zu bearbeitende Vorschlag/etc/vim/vimrc.tiny
ist neu, und dennoch nennen Sie Antworten bizarr, während Sie dasselbe vorschlagen wie sie.Der traditionelle vi-Editor erkennt die Pfeiltasten nicht (... afair). Es gibt zwei Lösungen:
quelle
Dies kann auch an der
TERM
Variablen liegen; Setze es zum Beispiel so:quelle
Auf einigen Systemen ist die
nocompatible
Option nicht verfügbar oder behebt das Problem möglicherweise nicht, wenn ein Plug-in die Pfeiltastenfunktionalität einbricht. Hier ist eine Problemumgehung ...Bearbeiten Sie die
.exrc
Datei so, dass sie die folgenden Zeilen enthält:Wenn das Problem nur im normalen Modus auftritt, können Sie wie folgt
nmap
Folgendes ändern und überspringena
:und so weiter.
Hier sind die Tastenkombinationen, die benötigt werden, um sie zu erstellen (nur die erste wird angezeigt):
Dies verlässt den Bearbeitungsmodus, bewegt sich in die gewünschte Richtung und wechselt wieder in den Bearbeitungsmodus. Dies ist erforderlich, um zu vermeiden, dass Vi die Escape-Sequenz als Folge von <ESC> <O> <A> usw. liest.
Quelle: https://hea-www.harvard.edu/~fine/Tech/vi.html
quelle
Für VI erstellen oder bearbeiten Sie die Datei "~ / .exrc" oder VIM erstellen oder bearbeiten Sie die Datei "~ / .vimrc" und fügen Sie sie in die Zeile ein.
Zum Zeitpunkt des Schreibens dieses Artikels gibt es zu dem am zweithäufigsten gestimmten Punkt Lob, die sich fragen, warum ihr Beitrag nicht angenommen wurde. Der Grund ist, dass es Hosts gibt, die die Installation anderer Editoren nicht zulassen. Sogar dann hat vim manchmal die gleichen Auswirkungen, so dass es eine Reihe von nützlichen Informationen aus den beiden obersten Einträgen gibt. Ich kann dies jedoch hoffentlich nicht kommentieren, um Gründe dafür zu klären, warum keines der beiden 100% ig richtig ist.
quelle
Auf dieser Maschine musste ich
make sure
dasist die
last entry in ~/.vimrc
. Oder es wird mindestens einer der letzten Einträge, insbesondere kein Plugin mehr nachgeladen.HTH
quelle
Aus irgendeinem Grund hat Ubuntu auf die Initialisierung von envvar HOME für den Benutzer root auf meinem neuen 18.04 VPS verzichtet. In diesem Fall kann vi die .vimrc-Datei nicht finden. Das Problem tritt bei normalen Benutzern (in / home /) nicht auf.
So überprüfen Sie die Variable:
Wenn dies zu einer Leerzeile führt, wird die Variable nicht gesetzt. Das Problem ging nach
Ich habe den Befehl in die Datei /root/.bashrc verschoben (ich weiß nicht, wo dies normalerweise eingestellt ist).
quelle