Technologieaustausch

[Beijing Xunwei] „i.MX8MM Embedded Linux Development Guide“ – Die erste Einführung in Embedded Linux – Kapitel 6 Verwendung des Vim-Editors

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Der i.MX8MM-Prozessor nutzt den fortschrittlichen 14LPCFinFET-Prozess, um schnellere Geschwindigkeit und höhere Energieeffizienz zu bieten; Quad-Core-Cortex-A53, Single-Core-Cortex-M4, bis zu fünf Kerne, getaktet bis zu 1,8 GHz, 2G DDR4-Speicher, 8G EMMC Lagerung. Gigabit Industrial Ethernet, MIPI-DSI, USB HOST, WIFI/BT, 4G-Modul, CAN, RS485 und andere Schnittstellen sind verfügbar. Es werden H264-, VP8-Video-Hardcodierung, H.264-, H.265-, VP8-, VP9-Video-Harddecodierung und verwandte Prozesse bereitgestellt und unterstützen eine 8-Wege-PDM-Schnittstelle, eine 5-Wege-SAI-Schnittstelle und einen 2-Wege-Lautsprecher. Das System unterstützt Android9.0 (unterstützt das Erhalten von Root-Berechtigungen), Linux4.14.78+Qt5.10.1, Yocto, Ubuntu20 und Debian9-Systeme. Geeignet für intelligente Ladesäulen, Internet der Dinge, industrielle Steuerung, medizinische Versorgung, intelligenter Transport usw. und kann für alle allgemeinen Industrie- und Internet-of-Things-Anwendungen verwendet werden.

[Öffentliches Konto] Xunwei Electronics

[Fansgruppe] 258811263 (Treten Sie der Gruppe bei, um Fahrerdokumentation und Routinen zu erhalten)


Kapitel 6 Verwendung des Vim-Editors

Der Video-Erklärungslink zum Inhalt dieses Kapitels (online ansehen):

Verwendung des Vim-Editors https://www.bilibili.com/video/BV1M7411m7wT?p=6

6.1 VIM-Editor

Der vi-Editor ist der ursprüngliche Editor für Unix-Systeme. Es verwendet den Konsolengrafikmodus, um ein Textbearbeitungsfenster zu simulieren, sodass Sie Zeilen in einer Datei anzeigen, sich innerhalb der Datei bewegen sowie Text einfügen, bearbeiten und ersetzen können. Obwohl es sich möglicherweise um den komplexesten Editor der Welt handelt, ist er aufgrund seiner zahlreichen Funktionen seit vielen Jahren ein wichtiges Werkzeug für Unix-Systemadministratoren. Als das GNU-Projekt den vi-Editor auf die Open-Source-Welt portierte, beschlossen sie, einige Verbesserungen daran vorzunehmen. Da es sich nicht mehr um den ursprünglichen vi-Editor unter Unix handelte, benannten die Entwickler ihn in „vi Improved“ oder „vim“ um.

Es gibt nicht nur WPS und Office auf Win, wir haben auch viele Editoren auf Ubuntu. Da fast jede Distribution über einen vi/vim-Editor verfügt und unter eingebettetem Linux der vim-Editor normalerweise integriert ist, werden die meisten Versionen des vim-Editors unterstützt, sodass wir vim lernen müssen.

vim ist eine erweiterte Version von vi. Grundsätzlich können alle vi-Befehle auf vim verwendet werden, und es ist einfacher zu verwenden als vi. Da diese beiden gleich sind, werden vim und vi in ​​der folgenden Studie nicht unterschieden.

6,2 VIch binDrei Editormodi

Wir können unter Windows auf das Symbol doppelklicken, aber der vi-Editor verfügt über kein Menü und wird über Befehle bedient. Wir öffnen die Konsole, die sich unter dem Pfad home/topeet befindet. Wir geben den vi-Dateinamen direkt ein, beginnend hier mit test.c, wodurch der Texteditor geöffnet wird. Wenn die von mir geöffnete Datei nicht vorhanden ist, wird eine neue Datei erstellt. Wenn die Datei vorhanden ist, wird sie direkt geöffnet.Wie nachfolgend dargestellt

Geben Sie den vim-Befehl und den Namen der zu bearbeitenden Datei im Terminal ein, um den vim-Editor zu starten (wenn der Dateiname beim Starten von vim nicht angegeben wird oder die Datei nicht existiert, öffnet vim einen neuen Pufferbereich zur Bearbeitung). .

Der vim-Editor verfügt über drei Betriebsmodi:

Der erste Modus ist der allgemeine Modus.Werfen wir einen Blick darauf. Nachdem wir den vim-Editor geöffnet haben, ist der Modus, in dem wir uns befinden, der normale Modus.

Der zweite Modus ist der Bearbeitungsmodus. Im wahrsten Sinne des Wortes ein Bearbeitungsmodus, in den wir Text eingeben können. Wir möchten in den Bearbeitungsmodus wechseln, drücken Sie einfach i auf der Tastatur und EINFÜGEN erscheint, wie in der Abbildung unten gezeigt. Der Modus, in dem wir uns jetzt befinden, ist der Bearbeitungsmodus. Im Bearbeitungsmodus können wir Textinhalte eingeben. Es ist möglich, Text oder Buchstaben einzugeben.

Wir kehren vom Bearbeitungsmodus in den Normalmodus zurück und drücken direkt die ESC-Taste auf der Tastatur. Jetzt steht in der unteren linken Ecke kein Wort EINFÜGEN.

Der dritte ist der Befehlszeilenmodus , der Modus, in dem ich mich jetzt befinde, ist der normale Modus, wir wechseln in den Befehlszeilenmodus und geben direkt „:“ auf der Tastatur ein. Wenn wie in der Abbildung unten gezeigt ein „:“ vorhanden ist, ist der aktuelle Status der Befehlszeilenmodus.

Geben Sie beispielsweise im Befehlszeilenmodus den Befehl „set number“ ein, um die Zeilennummer anzuzeigen.

Wie nachfolgend dargestellt:

Wir können die ESC-Taste im Befehlszeilenmodus drücken oder in den Normalmodus zurückkehren. Wenn ich beispielsweise vom Normalmodus in den Bearbeitungsmodus wechsle, drücke ich auf der Tastatur i und drücke dann ESC, um zurückzukehren. Wir kehren zu diesen drei Modi über ESC zurück, das durch Drücken der Taste „:“ oder „i“ auf der Tastatur umgeschaltet wird. Dies sind die drei Modi des VIM-Editors. Zusätzlich zur i-Taste auf der Tastatur können wir die a- oder o-Taste drücken, um in den Bearbeitungsmodus zu gelangen.

6.3 Bewegen Sie den Cursor im Vim-Editor

Wenn vim im Normalmodus den Terminaltyp korrekt identifizieren kann (unter normalen Umständen sollte dies in Ordnung sein), können Sie den Cursor direkt mit den Pfeiltasten im Textbereich bewegen.

vim verfügt außerdem über einzigartige Befehle zum Bewegen des Cursors.

K: nach oben bewegen

J: nach unten bewegen

H: nach links bewegen

L: nach rechts bewegen

Strg+F (Bild nach unten): Einen Bildschirm nach unten scrollen

Strg+B (Bild nach oben): Einen Bildschirm nach oben scrollen

Wir können im normalen Modus auf g auf der Tastatur doppelklicken. Die Funktion des Doppelklicks auf g besteht darin, den Cursor auf die erste Zeile zu positionieren geht zur letzten Zeile; wenn wir wollen, können wir ngg verwenden, um die Anzahl der Zeilen zu ermitteln. Wenn ich beispielsweise den Cursor auf Zeile 3 bewegen möchte, gebe ich 3gg ein.

gg: Positionieren Sie den Cursor auf der ersten Zeile

G: Positionieren Sie den Cursor auf die letzte Zeile

ngg: Positionieren Sie den Cursor auf die n-te Zeile

6.4 Kopieren und Einfügen von Text im VIM-Editor

Mit einem Texteditor unter Windows ist das Kopieren und Einfügen sehr praktisch, daher stelle ich Ihnen eine ähnliche Bedienungsmethode wie unter Windows vor, die viel bequemer ist als die direkte Verwendung von Befehlen.

Platzieren Sie zunächst den Cursor am Anfang der Zeile, in die wir den Inhalt kopieren möchten, und wählen Sie den Text mit den Aufwärts-, Abwärts-, Links- und Rechtstasten aus. Drücken Sie nach der Auswahl Y auf der Tastatur und drücken Sie dann die Esc-Taste, um zu zurückzukehren Bewegen Sie im Normalmodus den Cursor an die Stelle, an der wir einfügen möchten, und drücken Sie dann p auf Ihrer Tastatur.

Wenn ich nun diese Buchstaben in den Zeilen 1 bis 4 kopieren möchte, bewege ich zunächst den Cursor an den Zeilenanfang, also den Anfang der Zeile, die ich kopieren möchte, dann drücken wir v auf der Tastatur und ein Wort VISUAL erscheint in der unteren linken Ecke, und dann verwenden wir die Aufwärts-, Abwärts-, Links- und Rechts-Tasten auf der Tastatur, um den Text auszuwählen, den wir kopieren möchten. Nach der Auswahl drücken wir Y auf der Tastatur, wie unten gezeigt

Dann fügen wir unseren Text ein, wir drücken zunächst ESC auf der Tastatur, um zum Normalmodus zurückzukehren. Bewegen Sie dann den Cursor an die Position, an der wir ihn einfügen möchten, beginnend mit der fünften Zeile, und drücken Sie einfach p auf der Tastatur. Dadurch werden sie alle kopiert.

Der VIM-Editor 6.5 verwendet zum Kopieren Tastenkombinationen

Wenn ich hier nur eine Zeile kopieren möchte und nicht so viele Zeilen, ist dies für mich zu mühsam. Wenn ich beispielsweise die vierte Zeile hier kopieren möchte, gibt es auch einfache Möglichkeiten. Ich mache einfach einen Doppelklick auf y auf der Tastatur und dann bewegen wir den Cursor. In Zeile 9 drücken wir p, um eine Zeile zu kopieren.

Wenn ich mehrere Zeilen kopieren möchte, kann ich zum Vervollständigen auch diesen Befehl verwenden. Der Autor verwendet direkt den Befehl nyy. Mit diesem Befehl kopieren wir n Zeilen unterhalb der aktuellen Zeile. Hier möchte ich die Zeilen 3 bis 6 kopieren. Hier gebe ich insgesamt 4yy ein und bewege den Cursor auf Zeile 11. Ich drücke direkt p auf der Tastatur, sodass wir alle 4 Zeilen kopieren.

Dies ist der Kopierbefehl von vi, diese Befehle werden häufig verwendet.

yy: Kopieren Sie die aktuelle Zeile

nyy: Kopieren Sie n Zeilen unter die aktuelle Zeile

6.6 Löschen des VIM-Editors

Methode 1: Wechseln Sie direkt in den Bearbeitungsmodus und verwenden Sie zum Löschen die Löschfunktion

Methode 2: Verwenden Sie den Befehl dd

dd: Löschen Sie die Zeile, in der sich der Cursor befindet

ndd: n Zeilen löschen

n1,n2d: Den angegebenen Zeilenbereich löschen. Erfordert den Betrieb im Befehlszeilenmodus.

Methode eins: Ich gehe direkt in den Bearbeitungsmodus und drücke dann direkt auf der Tastatur die Löschtaste. Wenn dies zu mühsam ist, können Sie auch direkt den Befehl dd verwenden, um die Zeile zu löschen Der Cursor befindet sich jetzt in Zeile 8. Da es sich jetzt um INSERT handelt, schalte ich zuerst den Modus in den Normalmodus um und klicke dann doppelt auf d. Anschließend wird Zeile 8 gelöscht. Wie nachfolgend dargestellt.

Ebenso können wir ndd verwenden, um n Zeilen zu löschen. Wenn wir beispielsweise die Zeilen 9 bis 11 löschen und 3dd direkt eingeben, werden diese drei Zeilen gelöscht, wie in der folgenden Abbildung gezeigt.

Im täglichen Gebrauch müssen wir manchmal viele Zeilen löschen. Es ist zu mühsam, einen bestimmten Zeilenbereich zu löschen Befehlszeile. Moduseingabe.

Ich möchte den gesamten Inhalt von Zeile 1 bis Zeile 6 löschen. Drücken Sie den Doppelpunkt auf der Tastatur, um in den Befehlszeilenmodus zu gelangen, und geben Sie ein 1,6d, wie unten gezeigt, und drücken Sie dann die Eingabetaste, sodass alle Zeilen 1–6 gelöscht werden.

6.7 vim Editor rückgängig machen

Wir verwenden Strg+Z, um den Vorgang bei Win rückgängig zu machen. Um den Vorgang rückgängig zu machen, geben Sie im normalen Modus den Buchstaben u ein. Beachten Sie, dass dies der normale Modus ist und die von uns geschlossene Textdatei hier nicht rückgängig gemacht werden kann. Dies ist dasselbe wie bei Win. Ich mache den gelöschten Inhalt rückgängig. Wenn wir nicht wissen, in welchem ​​Modus wir uns befinden, kehren wir direkt mit der ESC-Taste in den Normalmodus zurück und drücken dann auf der Tastatur Löschen Sie es. Der Inhalt ist zurück. Wenn wir es nicht rückgängig machen wollen, wie können wir es dann rückgängig machen, indem wir Strg+R verwenden? Wie nachfolgend dargestellt.

6.8 vimEditor-Suche

Wir verwenden Strg+F, um unter Windows zu suchen. Im Vim-Editor von Ubuntu geben wir „/“ oder „?“ in den Befehlszeilenmodus ein. Wenn ich beispielsweise die beiden Buchstaben „da“ finden möchte, kann ich direkt „/“ auf der Tastatur drücken. Jetzt bin ich im Befehlszeilenmodus, gebe „da“ ein und drücke die Eingabetaste, um den Buchstaben „da“ zu finden.d.h. Eingabe/da,Wie nachfolgend dargestellt.

Um nach unten zu suchen, klicken Sie auf „n“ auf der Tastatur. Drücken Sie ESC, um zum normalen Modus zurückzukehren, geben Sie dann „?“ ein, geben Sie dann „da“ ein, drücken Sie die Eingabetaste und drücken Sie dann „n“, um nach oben zu suchen . Suchen, wenn wir also nach oben suchen möchten, verwenden wir „?“, um in den Befehlszeilenmodus zu gelangen. Wie nachfolgend dargestellt.

6.9 vim Editor-Ersatz

Wir rufen zuerst den Befehlszeilenmodus auf, geben zuerst Folgendes ein: „%s /xunwei/dianzi/g“ und drücken die Eingabetaste, sodass wir Xunwei durch „Electron“ ersetzen, wie in der folgenden Abbildung gezeigt. Sein Befehlsformat ist: „%s /old/new/g“.

6.10vimEditor speichern

:q! Beenden erzwingen

:wq Speichern und beenden

:q Unbearbeiteten Text verlassen

Geben Sie direkt einen Doppelpunkt ein, um den Befehlszeilenmodus aufzurufen. Wenn Sie speichern und beenden möchten, geben Sie direkt wq ein und drücken Sie die Eingabetaste, um zu speichern und zu beenden. Wie nachfolgend dargestellt.

Wenn wir die Datei test.c erneut öffnen, können wir sehen, dass sich der geänderte Inhalt noch darin befindet. Wenn wir ihn ändern möchten, ohne ihn zu speichern, löschen wir diese Zeile, geben dann einen Doppelpunkt ein und geben q ein. Wenn Sie dann diesen Text öffnen, können Sie sehen, dass die gelöschten Dinge nicht gespeichert werden, was bedeutet, dass unsere vorherigen Vorgänge nicht gespeichert werden. Wie nachfolgend dargestellt.

Wenn wir direkt beenden möchten, bedeutet dies, dass wir die Datei nur geöffnet und den Inhalt darin angesehen haben. Wir haben die Datei nicht direkt bearbeitet :Q Sie können beenden. Wie nachfolgend dargestellt.

Nach dem Speichern speichert der vim-Editor automatisch die Datei test.c für uns, wie in der folgenden Abbildung dargestellt. Wir hatten vorher keine test.c-Datei.

Wir müssen hier also keine Datei erstellen und den Namen der Datei hinzufügen, die wir erstellen möchten. Dann wird automatisch eine Datei für uns erstellt Geben Sie hier den Namen test4.c ein und geben Sie ihn direkt ein. vi test4.c , es gibt keine solche Datei in unserem Pfad, dann hilft uns der vim-Editor zuerst, diese Datei zu erstellen und sie dann zu öffnen, dann speichern wir sie und schauen mit ls nach, sodass wir test4.c in diesem Pfad haben. Wie nachfolgend dargestellt.

6.11 Vergleich der VIM-Editordateien

vimdiff Datei1 Datei2 Datei3

Dann vergleichen wir die Dateien, die wir vergleichen möchten, mit vim.c Das Ergebnis ist in der folgenden Abbildung dargestellt.

vimdiff test.c test4.c

Die meisten von uns vergleichen zwei Dateien. Natürlich kann dieser Befehl auch mehr als zwei Dateien vergleichen. Hier vergleiche ich mit test3.c, wie in der Abbildung unten gezeigt.

vimdiff test.c test4.c test3.c

Hier wird zunächst unser Vim-Editor vorgestellt.