Befehl zur Eingabe von vi
vi-Dateiname: Öffnen oder erstellen Sie eine neue Datei und platzieren Sie den Cursor am Anfang der ersten Zeile
vi +n Dateiname: Öffnen Sie die Datei und platzieren Sie den Cursor am Anfang der n-te Zeile
vi + Dateiname: Öffnen Sie die Datei und platzieren Sie den Cursor am Anfang der letzten Zeile
vi +/Muster-Dateiname: Öffnen Sie die Datei und platzieren Sie den Cursor an der ersten Zeichenfolge, die mit dem Muster übereinstimmt
vi - r Dateiname: Beim letzten Bearbeiten mit vi ist das System abgestürzt den Cursor um ein Zeichen nach links
l: Bewegen Sie den Cursor um ein Zeichen nach rechts
Leertaste: Bewegen Sie den Cursor um ein Zeichen nach rechts
Rücktaste: Bewegen Sie den Cursor um ein Zeichen nach links
k oder Strg +p: Bewegen Sie den Cursor eine Zeile nach oben
j oder Strg+n: Bewegen Sie den Cursor eine Zeile nach unten
Eingabetaste: Bewegen Sie den Cursor eine Zeile nach unten
w oder W: Bewegen Sie den Cursor ein Wort nach rechts an den Wortanfang
b oder B: Bewegen Sie den Cursor ein Wort nach links an den Anfang
e oder E: Bewegen Sie den Cursor ein Wort nach rechts an das Ende des Wortes
): Bewegen Sie den Cursor an das Ende des Satzes
(: Bewegen Sie den Cursor an den Anfang des Satzes
}: Bewegen Sie den Cursor an den Anfang des Absatzes
{: Bewegen Sie den Cursor an das Ende des Absatzes
nG: Der Cursor bewegt sich zum Anfang von Zeile n
n+: Der Cursor bewegt sich n Zeilen nach unten
n-: Der Cursor bewegt sich n Zeilen nach oben
n$: Der Cursor bewegt sich zum Ende der Zeile n
H: Der Cursor bewegt sich zur oberen Zeile des Bildschirms
M: Der Cursor bewegt sich zur mittleren Zeile des Bildschirms
L: Der Cursor bewegt sich zur letzten Zeile des Bildschirms
0 : (beachten Sie die Zahl Null) Der Cursor bewegt sich an den Anfang der aktuellen Zeile
$: Bewegt den Cursor an das Ende der aktuellen Zeile
Befehle zum Scrollen des Bildschirms
Strg+u: Halb scrollen -screen zum Anfang der Datei
Strg+d: Einen halben Bildschirm bis zum Ende der Datei scrollen
Strg+f: Einen Bildschirm bis zum Ende der Datei scrollen
Strg+b; zum Anfang der Datei
nz: Scrollen Sie die n-te Zeile an den oberen Rand des Bildschirms. Wenn n nicht angegeben ist, scrollen Sie die aktuelle Zeile an den oberen Rand des Bildschirms. >Fügen Sie Textbefehle ein Cursor
I: am Anfang der aktuellen Zeile
a: nach dem Cursor
A: am Ende der aktuellen Zeile
o: unterhalb der aktuellen Zeile öffnen Eine Zeile
O: Öffne eine neue Zeile über der aktuellen Zeile
r: Ersetze das aktuelle Zeichen
R: Ersetze das aktuelle Zeichen und die Zeichen danach, bis die ESC-Taste gedrückt wird
s: Von der aktuellen Cursorposition aus Beginnen Sie mit dem Ersetzen die angegebene Anzahl von Zeichen mit dem eingegebenen Text
S: Die angegebene Anzahl von Zeilen löschen und durch den eingegebenen Text ersetzen
ncw oder nCW: Die angegebene Anzahl von Zeichen ändern
nCC: Die angegebene Anzahl von ändern Zeichen Zeile
Befehl löschen
ndw oder ndW: die n-1 Zeichen beginnend am Cursor und danach löschen
do: bis zum Anfang der Zeile löschen
d$: löschen bis das Ende der Zeile
ndd: die aktuelle Zeile und n-1 Zeilen danach löschen
x oder X: ein Zeichen löschen, x löscht das Zeichen nach dem Cursor und Text
Suchen und Ersetzungsbefehl
/pattern: Nach Muster vom Anfang des Cursors bis zum Ende der Datei suchen
?pattern: Nach Muster vom Anfang des Cursors bis zum Anfang der Datei suchen
n: Wiederholen in die gleiche Richtung Letzter Suchbefehl
N: Wiederholen Sie den letzten Suchbefehl in die entgegengesetzte Richtung
: s/p1/p2/g: Ersetzen Sie alle p1 in der aktuellen Zeile durch p2
: n1,n2s/ p1/p2 /g: Ersetze alle p1 in den Zeilen n1 bis n2 durch p2
: g/p1/s//p2/g: Ersetze alle p1 in der Datei durch p2
Optionseinstellung
all: alle Optionseinstellungen auflisten
term: Terminaltyp festlegen
ignorance: Groß-/Kleinschreibung bei der Suche ignorieren
list: Tabstopp (Strg+I) und Zeilenendemarkierung ($) anzeigen
number: Zeigt die Zeilennummer an
report: Zeigt die durch zeilenorientierte Befehle geänderte Nummer an
terse: Zeigt eine kurze Warnmeldung an
warn: Wenn die aktuelle Datei beim Wechsel zu einer anderen Datei nicht gespeichert wird, wird NO write angezeigt information
nomagic: erlaubt die Verwendung von Sonderzeichen ohne „“ vor dem Suchmodus
nowrapscan: verbietet vi, am anderen Ende zu beginnen, wenn die Suche beide Enden der Datei erreicht
mesg: erlaubt vi zeigt die Informationen an, die andere Benutzer mit write auf ihre eigenen Terminals geschrieben haben
Der letzte Zeilenbefehl
: n1, n2 co n3: Kopieren Sie den Inhalt zwischen den Zeilen n1 bis n2 in Zeile n3
: n1, n2 m n3: Verschieben Sie den Inhalt zwischen den Zeilen n1 bis n2 an das Ende von Zeile n3
: n1, n2 d: Löschen Sie den Inhalt zwischen den Zeilen n1 bis n2
: w: Speichern Sie die aktuelle Datei
: e Dateiname: Datei Dateiname zum Bearbeiten öffnen
: x: Aktuelle Datei speichern und beenden
: q: vi beenden
: q!: vi beenden, ohne die Datei zu speichern
:!Befehl: Führen Sie den aus Shell-Befehl Befehl
: n1, n2 w!Befehl: Verwenden Sie den Inhalt von Zeile n1 bis Zeile n2 in der Datei als Eingabe des Befehls und führen Sie ihn aus. Wenn n1, n2 nicht angegeben ist, bedeutet dies, dass der gesamte Dateiinhalt wird als Eingabe des Befehls
verwendet: r!command: Die Ausgabe des Befehls command in die aktuelle Zeile einfügen
Vorgang registrieren
"?nyy: Den Inhalt der aktuellen Zeile speichern und die n Zeilen darunter Zum Register? , wobei ? ein Buchstabe ist, n eine Zahl
“?nyw: Aktuelle Zeile und die nächsten n Wörter im Register speichern?, wobei ? ein Buchstabe ist, n eine Zahl
"?nyl: Speichern Sie die aktuelle Zeile und die nächsten n Zeichen im Register?, wobei? ein Buchstabe und n eine Zahl ist
"?p: Nehmen Sie das Register heraus? und platzieren Sie es an der Cursorposition. Hier? Es kann ein Buchstabe oder eine Zahl sein
ndd: Löschen Sie die aktuelle Zeile und n Textzeilen darunter und tragen Sie den gelöschten Inhalt in das Löschregister Nr. 1 ein.
Verwendung von VI
---------------------------------------------------- --- ---------------------------
1. Text einfügen
┌──┬────────────┐
│Befehl│Beschreibung│
├──┼─────── ─── ───┤
│i │Text vor dem aktuellen Zeichen einfügen│
├──┼────────────┤
│I │Text am Anfang einfügen des Zeile│
├─ ─┼────────────┤
│a │Text nach dem aktuellen Zeichen hinzufügen│
├──┼───── ─── ────┤
A ────────────┤
│O │Fügen Sie eine Leerzeile vor der aktuellen Zeile ein │
├──┼─── ─── ──────┤
│R │Geben Sie Text im Umschreibemodus ein│
└──┴────────────┘
2. Bewegen Sie den Cursor
┌─────┬──── ───────┐
│Befehl│Beschreibung│
├─────┼───── ──────┤
│j oder Pfeil nach unten│Eine Zeile nach unten bewegen│
├─────┼──────────┤
│k oder Pfeil nach oben│Eine Zeile nach oben bewegen│
├──────┼─── ────────┤
│h oder Pfeil nach links│Ein Zeichen nach links verschieben├─────┼─── ── ───schung Move ein Wort nach rechts │
├─── - ─┼schreit ────┼─────────── ┤
│b │Bewegen Sie ein Wort nach links│
├─────┼──── ────── ─┤
│B │Bewegen Sie ein durch Leerzeichen getrenntes Wort nach links│
├─────┼───────────┤
│0 │Gehen Sie zum Anfang von Zeile│
│Strg-F │Seite vorwärts│
├─ ────┼───────────┤
│Strg-B │Seite zurück│ ├ ─────┼────────── ─┤
│nG │Zur n-ten Zeile│
├─────┼─── ───────┤
│G │Zur letzten Zeile│
└─ ────┴───────────┘
3. Ersatztext
┌──── ─┬ ──────┐
│Befehl│Beschreibung│
├─────┼──────┤
│$ │Bis zum Ende der Zeile│
├─ ────┼──────┤
│( │To Vom Anfang des Satzes│
├─────┼──────┤
│) │An das Ende des Satzes│
├────┼───────┤
4. Text löschen
┌───┬── ────────┐
│Befehl│Beschreibung│
├─── ┼───────────┤
│r │Ein Zeichen ersetzen│
├───┼───────────┤
│c │Text ändern, bis Esc gedrückt wird│
├───┼────── ────┤
│cw │Ändere das nächste Wort│
├───┼──── ───────┤
│cnw │Ändere die nächsten n Wörter│
└───┴ ────────────┘
5. Textbearbeitung
┌──┬────────────────────┐
│Mingji│Beschreibung│
├──┼── ───── ─── ───────────┤
│yy │Eine Textzeile in den Standardpuffer verschieben│
├──┼────────── ─── ───────┤
│yn │Verschieben Sie das nächste Wort in den Standardpuffer│
├──┼──────────── ──── ──── ──┤
│ynw │Verschieben Sie die folgenden n Wörter in den Standardpuffer│
├──┼──────────── ───────── ─┤
│p │Wenn der Standardpuffer eine Textzeile enthält, fügen Sie nach der aktuellen Zeile │
│ │ eine leere Zeile ein und ersetzen Sie den Text im Standardpuffer. Fügen Sie den Ton │
│ │ in diese Zeile ein; Wenn der Standardpuffer mehrere Wörter enthält │
│ │, fügen Sie diese Wörter rechts vom Cursor ein. │
├──┼──────────────────────┤
│P │Wenn der Standardpuffer eine Textzeile enthält, wird die aktuelle │
│ │Fügen Sie vor der Zeile eine leere Zeile ein und fügen Sie den Inhalt │
│ │ im Standardpuffer in diese Zeile ein. Wenn der Standardpuffer │
│ │Mehrere Wörter enthält, fügen Sie diese Wörter links ein des Cursors
│
└──┴────────────────────────┘
Sechs, speichern und verlassen
┌───────────┬─────────────┐
│Befehl│Beschreibung│ ─ ───── ───┼───────────────┤
│zz │Speichern und beenden│
├───── ────── ┼──── ───────────┤
│:w Dateiname │Datei schreiben│ ─ ────── ────┤
│:W │Datei schreiben│
├───────────┼───────── ─── ───┤
│:x │Speichern (wenn die aktuelle Datei geändert wurde) und beenden│
├───────────┼──────────── ─┤
│:q! │Direkt beenden, ohne die Datei zu speichern│
├──────────┼────────── ─ ┤ │ Es gibt viele Sets , und viele Menschen sind es nicht gewohnt, sie zu verwenden. Tatsächlich müssen Sie nur die Grundbefehle beherrschen und sie dann flexibel verwenden. Sie werden ihre Vorteile entdecken und diese Methode nach und nach verwenden. Ziel dieses Artikels ist es, einige der am häufigsten verwendeten Befehle und fortgeschrittenen Anwendungstechniken von VI vorzustellen.
1. Einführung in Grundbefehle
---- 1. Cursorbefehle
k, j, h, l – Befehle zur Bewegung des Cursors nach oben, unten, links und rechts. Obwohl Sie unter Linux die 4 Cursortasten auf der rechten Seite der Tastatur verwenden können, ist es dennoch sehr nützlich, sich diese 4 Befehle zu merken. Diese 4 Tasten sind die Grundposition Ihrer rechten Hand auf der Tastatur.
nG – Sprungbefehl. n ist die Anzahl der Zeilen. Dieser Befehl springt den Cursor sofort zur angegebenen Zeile.
Strg+G – Geben Sie die Anzahl der Zeilen und Spalten an der Cursorposition an.
w, b – Lassen Sie den Cursor ein Wort vorwärts oder rückwärts springen.
---- 2. Befehle bearbeiten
i, a, r – Zeichenbefehle vor, nach und am Cursor einfügen (i=einfügen, a=anhängen, r=ersetzen).
cw, dw – Befehle zum Ändern (Ersetzen)/Löschen des Wortes am Cursor (c=ändern, d=löschen).
x, d$, dd – Befehle zum Löschen eines Zeichens, zum Löschen aller Zeichen vom Cursor bis zum Ende der Zeile und zum Löschen der gesamten Zeile.
---- 3. Suchbefehl
----/string, ?string – Befehl zum Suchen der entsprechenden Zeichenfolge rückwärts oder vorwärts von der Cursorposition aus.
---- 4. Kopierbefehl
---- yy, p – Befehl zum Kopieren einer Zeile in die Zwischenablage oder zum Entfernen des Inhalts der Zwischenablage.
2. Häufig gestellte Fragen und Anwendungstipps
---- 1. Lesen Sie den Inhalt von /etc/passwd in einer neuen Datei und extrahieren Sie den Benutzernamenteil.
---- vi-Datei
---- :r /etc/passwd Liest /etc/passwd an der Cursorposition in der geöffneten Datei
---- :%s/:.*//g Löschen Sie alle Teile vom Doppelpunkt bis zum Ende der Zeile nach dem Benutzernamen in /etc/passwd.
---- Sie können den Dateiinhalt auch nach der angegebenen Zeilennummer lesen. Verwenden Sie beispielsweise den Befehl „:3r /etc/passwd“, um den gesamten Inhalt von /etc/passwd ab der 3. Zeile zu lesen die neue Datei.
---- Wir können auch die folgende Methode verwenden, um alle Leerzeilen und Kommentarzeilen, die mit # beginnen, in der Datei zu löschen.
---- #cat grep -v ^$ |. Nachdem ich eine Datei zum Bearbeiten geöffnet hatte, stellte ich fest, dass der angemeldete Benutzer keine Schreibberechtigung für die Datei hatte und sie nicht speichern konnte. Die Änderungen mussten in einer temporären Datei gespeichert werden.
---- vi-Datei
---- :w /tmp/1 Speichern Sie alle vorgenommenen Änderungen. Sie können einige Änderungen auch in einer temporären Datei speichern, z. B. nur die Zeilen 20 bis 59 Der Inhalt dazwischen wird in der Datei /tmp/1 gespeichert. Wir können den folgenden Befehl eingeben.
---- vi-Datei
---- :20,59w /tmp/1
---- 3. Verwenden Sie VI, um eine Datei zu bearbeiten, aber ein großer Teil des Inhalts muss gelöscht werden.
---- Öffnen Sie die Datei zunächst mit dem Bearbeitungsbefehl „vi-Datei“, bewegen Sie dann den Cursor auf die Zeile, die gelöscht werden muss, drücken Sie Strg+G, um die Zeilennummer anzuzeigen, und drücken Sie dann Strg+G Ende, um die Zeilennummer am Ende der Datei anzuzeigen.
---- :23,1045d Angenommen, die zweimal erhaltenen Zeilennummern sind 23 und 1045, dann löschen Sie den gesamten Inhalt in diesem Zeitraum. Sie können auch die Befehle ma und mb verwenden, um die Startzeile und die Endzeile zu markieren gelöscht werden, und löschen Sie es dann mit dem Befehl „:a,bd“.
---- 4. Fügen Sie am Anfang oder Ende jeder Zeile der gesamten Datei oder einiger Zeilen einige Zeichenfolgen hinzu.
---- vi-Datei
---- :3,$s/^/some string / Fügen Sie „some string“ vom Anfang der ersten Zeile bis zur letzten Zeile der Datei ein.
---- :%s/$/some string/g Fügen Sie „some string“ am Ende jeder Zeile in der gesamten Datei hinzu.
---- :%s/string1/string2/g Ersetzen Sie „string1“ durch „string2“ in der gesamten Datei.
---- :3,7s/string1/string2/ Ersetzen Sie „string1“ nur in der 3. bis 7. Zeile der Datei durch „string2“.
---- Hinweis: s steht für Ersatz, % steht für alle Zeilen und g steht für global.
---- 5. Bearbeiten Sie zwei Dateien gleichzeitig, kopieren Sie Text aus einer Datei und fügen Sie ihn in die andere ein.
---- vi Datei1 Datei2
---- yy Kopiere die Zeile am Cursor von Datei 1
---- :n zu Datei 2 wechseln (n=next)
-- -- p Füge die kopierte Zeile an der Cursorposition von Datei 2 ein
---- :n Zurück zu Datei 1 wechseln
---- 6. Ersetzen Sie den Pfad in der Datei.
---- Verwenden Sie den Befehl „:%s#/usr/bin#/bin#g“, um alle Pfade /usr/bin in der Datei durch /bin zu ersetzen. Sie können auch den Befehl „:%s//usr/bin//bin/g“ verwenden, wobei „“ ein Escape-Zeichen ist, das angibt, dass das folgende „/“-Zeichen ein Zeichen mit tatsächlicher Bedeutung und kein Trennzeichen ist.