Heim  >  Artikel  >  php教程  >  Detaillierte Erklärung des vi-Befehls unter Linux

Detaillierte Erklärung des vi-Befehls unter Linux

高洛峰
高洛峰Original
2016-12-12 16:29:131214Durchsuche

Detaillierte Erklärung des vi-Befehls

Der vi-Befehl ist ein häufig verwendeter und wichtiger Befehl unter Unix, mit dem eine oder mehrere Dateien im Vollbildmodus bearbeitet werden können. Wenn bei der Ausführung von vi keine Datei angegeben wird, generiert der Befehl vi automatisch eine unbenannte, leere Arbeitsdatei. Wenn die angegebene Datei nicht existiert, wird eine neue Datei mit dem angegebenen Dateinamen erstellt. Wenn die Änderungen an der Datei nicht gespeichert werden, ändert der Befehl vi den Inhalt der Originaldatei nicht.

Hinweis: Der vi-Befehl sperrt die bearbeitete Datei nicht, sodass mehrere Benutzer gleichzeitig eine Datei bearbeiten können und die zuletzt gespeicherte Dateiversion beibehalten wird.

Im Folgenden sind einige Optionen und ihre Bedeutung aufgeführt, die vom vi-Befehl verwendet werden:

 -c-Unterbefehl Bevor Sie die angegebene Datei bearbeiten, führen Sie zunächst den angegebenen Befehlsunterbefehl aus.

-r Dateiname stellt die angegebene Datei Dateiname wieder her.

-R legt die angegebene Datei im schreibgeschützten Modus im Editor ab, sodass etwaige Änderungen an der Datei nicht gespeichert werden.

  -y Zahl Stellt die Größe des Bearbeitungsfensters auf Zahlenzeilen ein.

Im Folgenden sind die drei Modi der vi-Bearbeitung aufgeführt:

Der Befehlsmodus ist der Modus bei der Eingabe von vi. In diesem Modus können Benutzer verschiedene Unterbefehle eingeben, um *-Vorgänge auszuführen, z. B. Zeilen löschen, Zeilen einfügen, zum nächsten Wort wechseln, zu anderen Zeilen wechseln usw.

Texteingabemodus In diesem Modus können Sie den Inhalt einer Zeile ändern und eine neue Zeile hinzufügen. Geben Sie im Befehlsmodus a, i oder c ein, um den Texteingabemodus aufzurufen, und drücken Sie die Escape-Taste, um zum Befehlsmodus zurückzukehren.

Befehlselementmodus In diesem Modus können Sie über Unterbefehle weitere Parameter eingeben. Beispiel: Der Unterbefehl „w“ erfordert die Eingabe eines Dateinamens und der Unterbefehl „/“ erfordert die Eingabe eines Suchbegriffs. Mit der Escape-Taste kehrt der Benutzer in den Befehlsmodus zurück.

Das Folgende wird im Selbstbefehlsmodus ausgeführt. Der Selbstbefehl, sich in derselben Zeile zu bewegen

h bewegt den Cursor um eine Stelle nach links.

 l Bewegen Sie den Cursor eine Stelle nach rechts.

  j Bewegen Sie den Cursor eine Stelle nach unten.

 k Bewegen Sie den Cursor um eine Stelle nach oben.

 w Bewegen Sie den Cursor vor das nächste kleine Zeichen.

 W Bewegen Sie den Cursor vor das nächste große Zeichen.

  b Bewegen Sie den Cursor vor das vorherige kleine Zeichen.

 B Bewegen Sie den Cursor vor das vorherige große Zeichen.

 e Bewegen Sie den Cursor hinter das nächste kleine Zeichen.

 E Bewegen Sie den Cursor hinter das vorherige große Zeichen.

 fc Bewegen Sie den Cursor zum nächsten c-Zeichen in derselben Zeile.

 Fc Bewegen Sie den Cursor zum vorherigen c-Zeichen in derselben Zeile.

 tc Bewegen Sie den Cursor zum Leerzeichen vor dem nächsten Zeichen c in derselben Zeile.

 Tc Bewegen Sie den Cursor zum Leerzeichen nach dem vorherigen Zeichen c in derselben Zeile.

 Nummer|. Bewegen Sie den Cursor zur Zahlenspalte.

Die folgenden Unterbefehle dienen zum Wechseln zwischen Zeilen im Befehlsmodus

+ oder Eingabetaste, um den Cursor zum ersten nicht leeren Zeichen der nächsten Zeile zu bewegen.

  – Bewegen Sie den Cursor zum ersten Nicht-Leerzeichen in der vorherigen Zeile.

 0 Bewegen Sie den Cursor zum ersten Zeichen der aktuellen Zeile.

 $ Bewegen Sie den Cursor zum letzten Zeichen der aktuellen Zeile.

 H Bewegen Sie den Cursor in die obere Zeile des Bildschirms.

  L Bewegen Sie den Cursor in die untere Zeile des Bildschirms.

 M Bewegen Sie den Cursor in die Mitte des Bildschirms.

Die folgenden Unterbefehle dienen zum Ändern der Bildschirmanzeige im Befehlsmodus

 z- Legen Sie die aktuelle Zeile als letzte Zeile des Bildschirms fest und zeigen Sie den Bildschirm erneut an.

z. Machen Sie die aktuelle Zeile zur mittleren Zeile des Bildschirms und zeigen Sie den Bildschirm erneut an.

 Strg+l zeigt den aktuellen Inhalt des Bildschirms erneut an.

 /pattern/z- Suchen Sie die nächste Position des Musters und setzen Sie die Linie auf die letzte Zeile des Bildschirms.

Die folgenden Unterbefehle werden zum Anzeigen von Seiten im Befehlsmodus verwendet

 Strg + F, um eine Seite zurückzublättern.

Strg + D scrollt eine halbe Seite zurück.

Strg + B, um eine Seite vorwärts zu scrollen.

Strg + u eine halbe Seite vorwärts scrollen.

Strg + e scrollt eine Zeile nach unten.

Strg + Y scrollt das Bildschirmelement eine Zeile nach oben.

Die folgenden Unterbefehle werden verwendet, um Zeichenfolgen im Befehlsmodus zu finden.

 /pattern sucht rückwärts nach dem angegebenen Muster. Wenn es auf das Ende der Datei stößt, beginnt es von vorne.

? Muster sucht vorwärts nach dem angegebenen Muster. Wenn es auf den Anfang der Datei stößt, beginnt es am Ende.

 n Führen Sie die zuletzt definierte Suche erneut in der zuletzt angegebenen Richtung durch.

 N Führen Sie die zuletzt definierte Suche erneut in der entgegengesetzten Richtung zur zuletzt angegebenen Richtung durch.

 /pattern/+number Stoppen Sie den Cursor auf der Zahlenzeile nach der Zeile mit dem Muster.

 /pattern/-number Platzieren Sie den Cursor auf der Zahlenlinie vor der Zeile mit dem Muster.

 % Bewegen Sie sich zum passenden „()“ oder „{}“.

Die folgenden Unterbefehle werden zur Texteingabe im Texteingabemodus verwendet (der Benutzer kann jederzeit Escape drücken, um zum Befehlsmodus zurückzukehren):

 a Beginnen Sie mit der Texteingabe nach dem Cursor.

A beginnt mit der Texteingabe am Ende der Zeile.

i Beginnen Sie mit der Texteingabe vor dem Cursor.

Ich gebe Text vor dem ersten Nicht-Leerzeichen am Anfang der Zeile ein.

oFügen Sie nach der Zeile, in der sich der Cursor befindet, eine Leerzeile ein.

OFügt eine Leerzeile vor der Zeile ein, in der sich der Cursor befindet.

Die folgenden Unterbefehle werden zum Ändern von Text im Befehlsmodus verwendet (der Benutzer kann jederzeit die Escape-Taste drücken, um zum Befehlsmodus zurückzukehren):

 cc oder S, um eine ganze Zeile zu ändern.

 C Ändern Sie den Teil nach der Cursorposition einer Zeile.

 cw ändert das Wort an der Stelle, an der sich der Cursor befindet.

 dd löscht die aktuelle Zeile.

 D Löschen Sie den Inhalt hinter dem Cursor in der Zeile, in der sich der Cursor befindet.

 dw löscht das Wort, an dem sich der Cursor befindet.

J Fügen Sie die nächste Inhaltszeile am Ende dieser Zeile hinzu.

rc ersetzt das Zeichen des Lichtsymbols durch c.

R überschreibt den Inhalt dieser Zeile.

uSetzen Sie die letzte Änderung zurück.

x löscht das Zeichen, an dem sich der Cursor befindet.

 ~ Ändern Sie die Groß-/Kleinschreibung des Zeichens unter dem Cursor.

Wiederholen Sie den vorherigen Vorgang.

 <

 >>Verschiebt die aktuelle Zeile nach rechts.

Das Folgende ist ein Wortbefehl, der zum Kopieren von Text in einer Datei verwendet wird

 p Holen Sie sich den Pufferinhalt in die Zeile unterhalb der Zeile, in der sich der Cursor befindet.

 P Holen Sie sich den Pufferinhalt in die Zeile über der Zeile, in der sich der Cursor befindet.

 "bd Löschen Sie den Text im berühmten Puffer b.

 "bp Veröffentlichen Sie den Inhalt im berühmten Puffer b.

yyLegen Sie die aktuelle Zeile in den Puffer.

Y Legt die aktuelle Zeile in den Puffer.

Yw fügt das Wort unter dem Cursor in den Puffer ein.

Das Folgende sind Unterbefehle zum Speichern von Dateien

  :w schreibt die geänderte Datei zurück.

 :w Dateiname Wenn Dateiname nicht vorhanden ist, speichern Sie die geänderte Datei als Datei Dateiname. Wenn Datei Dateiname vorhanden ist, wird ein Fehler gemeldet.

 !w Dateiname Wenn Datei Dateiname vorhanden ist, speichern Sie die geänderte Datei als Datei Dateiname.

Im Folgenden sind die Unterbefehle aufgeführt, die zum Wechseln zwischen mehreren von vi bearbeiteten Dateien verwendet werden

 :nStart Bearbeiten der nächsten Datei in der durch vi aktivierten Dateiliste.

 :n Dateinamen gibt eine neue Liste der zu bearbeitenden Dateien an.

Die Unterbefehle, die zum Wechseln zwischen der aktuellen Datei und einer anderen Datei verwendet werden, sind unten aufgeführt:

  :e Dateiname Verwenden Sie Dateinamen, um vi zu aktivieren (laden Sie eine andere Datei Dateiname in vi).

e! Laden Sie die aktuelle Datei neu. Wenn Änderungen an der aktuellen Datei vorgenommen wurden, verwerfen Sie die vorherigen Änderungen.

 :e+Dateiname Verwenden Sie Dateiname, um vi zu aktivieren und mit der Bearbeitung am Ende der Datei zu beginnen.

 :e+Nummer Dateiname Verwenden Sie Dateiname, um vi zu aktivieren und mit der Bearbeitung der Zeilennummer zu beginnen.

  :e# Beginnen Sie mit der Bearbeitung einer anderen Datei.

Die folgenden Unterbefehle werden verwendet, um weitere Dateicodes zu dieser Datei hinzuzufügen:

 :r Dateiname liest die Dateinamendatei und fügt ihren Inhalt der aktuellen Datei hinzu.

 :r ! Befehl führt die Befehlsdatei aus und fügt ihre Ausgabe der aktuellen Datei hinzu.

Im Folgenden finden Sie weitere Unterbefehle in vi

 Strg+g ruft Informationen über die bearbeitete Datei ab.

 :sh startet sh, kehre von sh zurück und verwende Exit oder Strg+D.

 :! Command führt den Befehl aus.

Führen Sie den letzten Befehl erneut aus: ! Befehlsunterbefehl.

:q zum Beenden von vi Wenn der Benutzer Änderungen an der bearbeiteten Datei vornimmt, lässt das System nicht zu, dass der Benutzer den Befehl q zum Beenden verwendet.

:q! Beenden Sie vi, unabhängig davon, ob Änderungen an der Datei vorgenommen wurden.

ZZ oder:wq Speichern Sie die Änderungen an der Datei und beenden Sie vi.

Benutzer können spezielle vi-Befehle in einer speziellen Datei .exrc definieren. Wenn Sie diese Befehle in vi verwenden, müssen Sie vor dem Befehl
einen Doppelpunkt (:) hinzufügen.

——————————————————-

Vi-Modus

vi ist ein Programm, das vor langer Zeit geschrieben wurde. Damals verfügten Tastaturen noch nicht über so viele Funktionstasten, wie wir sie heute kennen. Daher dient vi dazu, die Eingabe und Änderung von Text durch die Eingabe von Zeichen und ESC zu steuern.

Vielleicht ist das für manche Leute schade, aber Sie werden feststellen, dass Sie die Position Ihrer Hände auf der Tastatur nicht ändern müssen, um alle Funktionen auszuführen. Das Ergebnis ist, dass Sie schneller tippen können.

Um die interaktive Bearbeitung im Vollbildmodus abzuschließen, verfügt vi über drei Modi. Der Einfügemodus wird zum Eingeben von Text verwendet. Im Einfügemodus werden alle von Ihnen eingegebenen Zeichen auf dem Bildschirm angezeigt und in der Datei gespeichert. Der Befehlsmodus wird für die meisten Bearbeitungsfunktionen verwendet. Im Befehlsmodus führen alle Eingaben zu bestimmten Reaktionen, anstatt direkt zum Text zu gelangen, z. B. Bewegen des Cursors, Löschen eines Textabschnitts, Kopieren von Text usw. Der dritte Modus dient der Ausführung zusätzlicher Funktionen wie Suchen, globales Ersetzen, Verarbeiten mehrerer Dateien usw. Dieser Modus basiert auf dem Ex-Editor.
Vi starten

Wenn vi startet, ist der Standardmodus der Befehlsmodus. Führen Sie die folgenden Schritte aus, um es auszuprobieren: Geben Sie den Programmnamen ein, um vi zu starten:

$ vi

Sie werden etwas Ähnliches wie das Folgende sehen:

~~~ ~~~~ ~~~~~~~~~~~~~~~~Leerer Puffer

i – ​​​​Einfügen

Jetzt geben wir „i“ ein, um in den Einfügemodus zu gelangen . Das Zeichen „i“ wird nicht wiedergegeben. Alles, was Sie danach eingeben, wird im Cache angezeigt. Geben wir nun einen Text ein. Die Wörter im Beispiel stammen aus der englischen Version von Sun Tzus „The Art of War“. Beachten Sie, dass die Cursorposition im Beispiel unterstrichen ist.

Wenn ein Kommandant weise ist, ist er in der Lage, sich ändernde Umstände zu erkennen und angemessen zu reagieren. Wenn er aufrichtig ist, werden seine Männer keinen Zweifel an der Gewissheit von Belohnungen und Strafen haben. Wenn er menschlich ist, liebt er die Menschheit, hat Mitgefühl mit anderen und schätzt ihren Fleiß Wenn er mutig ist, erringt er den Sieg, indem er die Gelegenheit ohne Zögern nutzt. Wenn er streng ist, sind seine Truppen diszipliniert, weil sie Ehrfurcht vor ihm haben und Angst vor Bestrafung haben nicht in der Lage sein, Zweifel zu überwinden oder große Pläne zu schmieden Taste zum Zurückkehren. Wechseln Sie in den Befehlsmodus. (Wenn Sie sich bereits im Befehlsmodus befinden, hören Sie einen Hupenton, wenn Sie Esc drücken.) Esc macht nicht abgeschlossene Befehle rückgängig und beendet den Einfügemodus. Nachdem Sie Esc gedrückt haben, bleibt der Cursor unter dem zuletzt eingegebenen Zeichen.

Leider gibt es keine offensichtlichen Anzeichen dafür, in welchem ​​Modus Sie sich gerade befinden. Aber es gibt einfache Möglichkeiten, Ihnen zu sagen, in welchem ​​Modus Sie sich gerade befinden. Wenn Sie eine Taste drücken und das entsprechende Zeichen auf dem Bildschirm erscheint, befinden Sie sich im Einfügemodus, andernfalls im Befehlsmodus. Wenn Sie nicht sicher sind, in welchem ​​Modus Sie sich befinden, drücken Sie zweimal Esc, um die Hupe zu hören und sicherzustellen, dass Sie sich im Befehlsmodus befinden.

Bewegen des Cursors und einfache Bearbeitung

Es ist Zeit, einen Blick auf die grundlegenden Befehle zum Bewegen des Cursors zu werfen. Trainieren Sie Ihre Finger und lassen Sie sie in Zukunft automatisch die gewünschten Befehle ausführen.

Die wichtigsten Bewegungsbefehle

Sehen wir uns an, wie viele Befehle die Cursorbewegung beeinflussen.

hh – Bewegen Sie den Cursor nach links

Drücken Sie zunächst 5 Mal h, um den Cursor 5 Positionen nach links zu bewegen (wenn Sie h auf dem Bildschirm sehen, müssen Sie vergessen haben, Esc zu drücken). Der Cursor sollte sich nun unter dem „p“ in „Plänen“ befinden (siehe Beispiel unten):


Wenn ein Kommandant klug ist, ist er in der Lage, sich ändernde Umstände zu erkennen und zielführend zu handeln. Wenn er aufrichtig ist, werden seine Männer keine haben Wenn er menschlich ist, liebt er die Menschheit, hat Mitgefühl mit anderen und schätzt ihren Fleiß und ihre Mühe. Wenn er mutig ist, erringt er den Sieg, indem er die Gelegenheit ohne zu zögern nutzt. Wenn er streng ist, sind seine Truppen diszipliniert, weil sie Ehrfurcht haben von ihm und haben Angst vor Strafe … sagte: „Wenn ein General nicht mutig ist, wird er nicht in der Lage sein, Zweifel zu überwinden oder große Pläne zu schmieden.“~~~~~~~~~~~~~~

kk – Bewegen Sie den Cursor nach oben

Jetzt drücken wir fünfmal k, um den Cursor um 5 Zeilen nach oben zu bewegen. Vielleicht sollten Sie denken, dass es eine Abkürzung geben sollte. Nun, hier ist eine einfache Möglichkeit: Geben Sie eine Zahl vor die Aktion ein, die Sie ausführen möchten. Durch Drücken von 5k erhalten Sie das gleiche Ergebnis wie durch fünfmaliges Drücken von k. Der Cursor sollte sich nun unter dem „e“ von „he“ befinden.

Wenn ein Kommandant weise ist, ist er in der Lage, sich ändernde Umstände zu erkennen und zweckdienlich zu handeln. Wenn er aufrichtig ist, werden seine Männer keinen Zweifel an der Gewissheit von Belohnungen und Strafen haben. Wenn er menschlich ist, liebt er die Menschheit und hat Mitleid mit anderen Wenn er mutig ist, erringt er den Sieg, indem er die Gelegenheit ergreift. Wenn er streng ist, sind seine Truppen diszipliniert, weil sie Ehrfurcht vor ihm haben und Angst vor Bestrafung haben Wenn er mutig ist, wird er nicht in der Lage sein, Zweifel zu überwinden oder große Pläne zu schmieden. Wenn Sie beispielsweise h oder l verwenden, um den Cursor über den Anfang oder das Ende einer Textzeile hinaus zu bewegen, bleibt der Cursor am Anfang oder Ende und die Hupe ertönt, um Sie daran zu erinnern.

Gibt es noch andere, die h und k ähneln? Schauen Sie sich Tabelle 3.2 an. Der beste Weg, sich mit ihnen vertraut zu machen, besteht darin, sie häufig zu verwenden.

Tabelle 3.2. Gängige Pfeiltasten

Befehle bewegen

h ein Zeichen nach links

j nächste Zeile

k vorherige Zeile
l ein Zeichen nach rechts

w, W Zurück Wort (W ignoriert Satzzeichen)

b, B Nächstes Wort (B ignoriert Satzzeichen)
$ bis zum Ende der Zeile
^ bis zum ersten nicht leeren Zeichen am Anfang der Zeile
0 Anfang der Zeile
G bis zum Anfang des Puffers
nG bis zur n-ten Zeile

Es gibt einige Unterschiede zwischen Befehlen in Groß- und Kleinschreibung. Kleinbuchstaben unterscheiden im Allgemeinen „Wörter“ durch Satzzeichen, während Großbuchstaben sie ignorieren.
Die wichtigsten Bearbeitungsverfahren

Werfen wir einen Blick auf den einfachsten und am häufigsten verwendeten Bearbeitungsprozess:

Änderung Niemand macht Fehler. Früher oder später werden Sie also in die Situation kommen, dass Sie den eingegebenen Text ändern müssen. Die meiste Zeit, die mit der Textverarbeitung verbracht wird, ist tatsächlich das Überarbeiten und nicht das Eintippen neuer Dinge. Daher ist es wichtig, dass Sie wissen, wie Sie es einfach ändern können.


x – ein Zeichen löschen Der einfachste Weg, Text zu löschen, ist mit x. Das Ergebnis dieses Befehls ist, dass das Zeichen, an dem sich der Cursor befindet, verschwindet und der folgende Text nach links verschoben wird. Wenn das von Ihnen gelöschte Zeichen das letzte Zeichen in einer Zeile ist, bewegt sich der Cursor um eins nach links, sodass der Cursor nicht unter einem nicht vorhandenen Zeichen stehen bleibt. Wenn es keine Worte mehr gibt, ertönt die Hupe.

d – Objekt löschen Auf der rechten Seite dieses Befehls muss sich auch ein bestimmtes Textobjekt befinden. Ein Textobjekt ist ein Textstück. Die rechts von ihm verbundenen Zeichen sind die Zeichen, die die Bewegung des Cursors steuern. W bedeutet zum Beispiel ein Wort vorwärts, dann löscht dw das nächste Wort. 5w bedeutet, 5 Wörter vorwärts zu gehen, dann löscht d5w sie.

dd – eine Zeile löschen Einer der am häufigsten verwendeten Befehle der D-Serie. Wie zuvor löscht 5dd 5 Zeilen

D – das Ganze löschen. Der Großbuchstabe D wird verwendet, um vom Cursor bis zum Ende der Zeile zu löschen. Gleicher Effekt wie d$.

u – Genesung Willst du es bereuen? Es macht nicht nur Löschungen rückgängig, sondern auch Ihre gesamte Bearbeitungsarbeit.

.–Wiederholen Wiederholen Sie die Bearbeitungsarbeit.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn