8 Vim Tipps und Tricks, die Sie zu einem Profi machen

Kurz : In diesem Artikel zeige ich Ihnen einige meiner Lieblings- Vim-Tricks mit praktischen Beispielen. Wenn Sie Vim nicht verwenden, geben diese Tipps möglicherweise keine Gründe für die Verwendung von Vim an. Wenn Sie es jedoch bereits verwenden, werden Sie definitiv ein besserer Vim-Benutzer.

Auch wenn ich in letzter Zeit immer häufiger mit Atom arbeite, kann ich kaum einen Tag ohne Vim verbringen. Nicht, weil ich dazu gezwungen bin. Aber weil ich mich so wohl fühle.

Ja, bequem . Ein sehr seltsames Wort, wenn es um Vi oder einen seiner Klone geht, nicht wahr? Und ich stimme zu, es ist sicherlich nicht der intuitivste Texteditor.

Mit etwas Übung und ein wenig Gedächtnis können Sie jedoch scheinbar komplexe Bearbeitungsaufgaben mit nur wenigen Tastenanschlägen ausführen. Etwas, das ich mit keinem anderen Befehlszeilentexteditor für Linux wirklich gefunden habe.

Aber anstatt eine weitere vi-Einführung zu schreiben, habe ich mich heute dafür entschieden, Ihnen die wahre Kraft hinter Vi (m) näher zu bringen, indem ich Ihnen einige Tricks vorstelle, die ich wirklich verwende - und die ich in den meisten, wenn nicht allen anderen Editoren vermisse. Ich werde Ihnen nicht die vollständige Erklärung all dieser Tricks geben, aber ich empfehle Ihnen nachdrücklich, zu versuchen, mit ihnen zu experimentieren, bis Sie einen Einblick in ihre Funktionsweise erhalten.

Wenn Ihnen Vim gefallen hat und Sie es vollständig beherrschen möchten, können Sie sich auch für einen Online-Vim-Kurs der Linux Training Academy anmelden.

8 Vim-Tricks, um mehr herauszuholen

Lassen Sie mich wiederholen: Ich ermutige Sie nachdrücklich, dieses Beispiel selbst auszuprobieren. Leider macht WordPress keine gute Arbeit, um den genauen Inhalt meiner Beispiele und Befehle beizubehalten - insbesondere in Bezug auf leere Zeilen oder Anführungszeichen. Sie können die hier verwendeten Beispiele also bequem über den folgenden Link herunterladen:

Laden Sie die Vim-Beispiele zum Üben herunter

Jedes Beispiel enthält den Originaltext (.orig) und ein Bash-Skript (.sh), das Vim mit dem in diesem Artikel veranschaulichten Befehl aufruft.

1. Ändern der Großschreibung in Vim

Bin ich der einzige, der diese Funktion nutzt? Oder liegt das daran, dass ich zum Scheitern verurteilt bin, mit Leuten zusammenzuarbeiten, die glauben, dass es COOL ist, ALLE GROSSBUCHSTABEN ZU SCHREIBEN?

Wie auch immer, beim Programmieren, beim Hinzufügen eines Urheberrechtsvermerks oder sogar nach dem Einfügen von Texten ist es nicht ungewöhnlich, dass die Groß- und Kleinschreibung geändert werden muss. In dieser Hinsicht ist Vim viel weiter entwickelt als das ursprüngliche Vi. Und ich segne jeden Tag Bram Moolenaar für seine großartige Arbeit:

Original Text
Urheberrecht (c) von

Die Verwendung des Werks ist zulässig, sofern dieses Instrument im Werk verbleibt und jede Person, die das Werk nutzt, über dieses Instrument informiert wird.

Haftungsausschluss: Die Arbeiten sind ohne Gewähr.

Befehle
~Schaltergehäuse
: $ norm gUUWandle die letzte Zeile in Großbuchstaben um {not in Vi}
Geänderter Text
Copyright (c) von

Die Verwendung des Werks ist zulässig, sofern dieses Instrument im Werk verbleibt und jede Person, die das Werk nutzt, über dieses Instrument informiert wird.

HAFTUNGSAUSSCHLUSS: DIE WERKE SIND OHNE GARANTIE.

2. Vim suchen und ersetzen Tipps

Diesen benutze ich jeden Tag. Warum ist das noch nicht in allen Texteditoren vorhanden? Natürlich haben die meisten Editoren eine Suchfunktion. Aber wie viele haben wirklich die Macht von Regex- und Substitutionsmustern? Natürlich ist dies komplexer zu meistern als einfache Zeichenfolgensubstitutionen . Aber ohne diese Funktion könnte ich einfach nicht leben. An einem solchen Punkt sehe ich mich manchmal beim Kopieren / Einfügen von einigen GUI-Editoren in ein Terminal, das auf und ab läuft. Aber Vi hat das seit ungefähr 40 Jahren eingebettet ...

Original Text
Kann ein Junge jeden Tag einen Zaun schwarz streichen? Das setzte das Ding in ein neues Licht. Ben Rogers hörte auf, an seinem Apfel zu knabbern. Tom wischte seinen Pinsel vorsichtig hin und her - trat zurück, um den Effekt zu bemerken - fügte hier und da eine Berührung hinzu - kritisierte den Effekt erneut - Ben beobachtete jede Bewegung und wurde immer interessierter, immer absorbierter.
Befehle
: s / schwarz / weiß /Ersetze das erste Vorkommen der Zeichenkette 'black' durch 'white'
: s / Ben \ (Rogers \) \ @! / Ben Rogers / gErsetzen Sie jedes Vorkommen der Zeichenfolge 'Ben' durch 'Ben Rogers', es sei denn, 'Rogers' war bereits vorhanden
: s /.*/

\ r & \ r /

Wickeln Sie die Linie zwischen

und

: -1s / - / \ - / gErsetzen Sie jedes Vorkommen der Zeichenfolge '-' durch '-' in der vorhergehenden Zeile
Geänderter Text

Hat ein Junge die Chance, jeden Tag einen Zaun weiß zu streichen? Das setzte das Ding in ein neues Licht. Ben Rogers hörte auf, an seinem Apfel zu knabbern. Tom fuhr mit dem Pinsel behutsam hin und her - trat zurück, um den Effekt zu bemerken - fügte hier und da eine Berührung hinzu - kritisierte den Effekt erneut - Ben Rogers beobachtete jede Bewegung und wurde immer interessierter, immer absorbierter.

Diese Lattenzäune erinnern mich an ViM…

3. In kürzester Zeit Dinge bewegen

Ja, Copy-Paste und Drag-and-Drop sind großartige Werkzeuge. Aber manchmal ist es einfach zu langweilig, durch ein gesamtes Dokument zu scrollen, um herauszufinden, wo mein Text eingefügt werden soll, und dann in die entgegengesetzte Richtung zu scrollen, um den Cursor an seine ursprüngliche Position zurückzubringen.

Original Text
Vorteile:

* Schnell

* Leistungsstark

* Zuverlässig

* Nicht benutzerfreundlichCons:

* Tragbar

* Süchtig machend

Befehle
/Leistung/Gehe in die erste Zeile mit dem String 'Power'
ddpTauschen Sie die aktuelle Zeile mit der nächsten aus
: / benutzerfreundlich / m $Verschieben Sie die nächste Zeile mit der Zeichenfolge "benutzerfreundlich" an das Ende der Datei
G;Den Cursor an die vorherige Position zurückbringen
: / Cons / + 1m-2Verschiebe zwei Zeilen nach oben und folge 'Nachteile'
Geänderter Text
Vorteile:

* Schnell

* Zuverlässig

* Leistungsstark

* Tragbare Nachteile:

* Süchtig machend

* Nicht benutzerfreundlich

4. Anwenden von Befehlen auf einen Adressbereich

Mit GUI-Editoren können Sie möglicherweise einige Befehle auf die gesamte Datei oder nur auf die aktuelle Auswahl anwenden. Manchmal haben wir mehr Optionen, wie vor oder nach dem Cursor. Vi (m) erlaubt jedoch eine viel aussagekräftigere Beschreibung des Bereichs, auf den ein gegebener Befehl angewendet werden muss:

Original Text

Stift nameEchter Name
Mark TwainSamuel Clemens
Lewis CarrollCharles Dodgson
Richard BachmanStephen King

Viele Schriftsteller haben sich entschieden, unter einem Pseudonym zu schreiben.

Befehle
: / /, // g / ^ $ / d
Löschen Sie Leerzeilen zwischen Zeilen mit und
: / ^ $ /; / ^ $ / - 1m1Text zwischen den nächsten beiden leeren Zeilen nach Zeile 1 verschieben (hier Semikolon verwenden)
: 2, $ - 1>Erhöhen Sie die Einrückung des Texts zwischen Zeile 2 und der vorletzten Zeile
Geänderter Text

Viele Schriftsteller haben sich entschieden, unter einem Pseudonym zu schreiben.

Stift nameEchter Name
Mark TwainSamuel Clemens
Lewis CarrollCharles Dodgson
Richard BachmanStephen King

5. Beispiele für Vim-Piping-Befehle

Dieser ist absolut ein Meta-Trick im direkten Sinne der Unix-Philosophie. Mit Vi können Sie einen Teil Ihres Puffers über einen externen Befehl verarbeiten. Dies ist ideal, wenn Sie Dinge benötigen, die in Vi nicht direkt ausführbar sind - oder für Dinge, die in Vi nicht einfach ausführbar sind. Mein bevorzugter Anwendungsfall für diese Funktion ist das Sortieren von Daten - aber es hat praktisch unbegrenzte Möglichkeiten:

Original Text
tee> (Echo $ (wc -l) neuesten Daten) << EOT

Aug. 2016 2, 11%

September 2016 2, 23%

Okt. 2016 2, 18%

November 2016 2, 31%

Dezember 2016 2, 21%

Jan. 2017 2, 27%

März 2016 1, 78%

April 2016 1, 65%

Mai 2016 1, 79%

Jun, 2016 2, 02%

Juli 2016 2, 33%

EOTLinux-Marktanteil auf dem Desktop

Quelle: //www.netmarketshare.com

Befehle
: 2, / ^ EOT / -1! Sort -k2n -k1MDaten nach Jahr und Monat sortieren
: $ r! Datum "+ Daten erhalten die \% c"Fügen Sie die Ausgabe des date am Ende der Datei hinzu
: 1, / ^ EOT /! BashFühren Sie das eingebettete Skript aus und ersetzen Sie es durch das Ergebnis
Geänderter Text
März 2016 1, 78%

April 2016 1, 65%

Mai 2016 1, 79%

Jun, 2016 2, 02%

Juli 2016 2, 33%

Aug. 2016 2, 11%

September 2016 2, 23%

Okt. 2016 2, 18%

November 2016 2, 31%

Dezember 2016 2, 21%

Jan. 2017 2, 27%

11 neueste Daten Linux-Marktanteil auf dem Desktop

Quelle: //www.netmarketshare.com

Die Daten wurden am Do 09 Feb 2017 23:07:34 CET abgerufen

6. Weniger tippen

Wenn Sie eine formelle Dokumentation schreiben, müssen Sie immer einige ungewöhnlich lange und komplizierte Begriffe wiederholen. Es kann sich um einen Marken- oder Produktnamen handeln. Ein Ort. Ein Urheberrechtsvermerk. Und so weiter. Offensichtlich muss jede Instanz dieser großen Wörter korrekt geschrieben sein und exakt die gleiche Groß- und Kleinschreibung und Interpunktion verwenden. Die Abkürzung von Vim ist dort ein Muss.

Befehle
: ab apple Apple Computer, Inc.Geben Sie eine neue Abkürzung ein
ichIn den Einfügemodus wechseln
apple wurde 1977 gegründet.

Das Apfellogo ist ein Apfel ^ V.

Eingegebener Text

(^ V bedeutet Kontrolle-V )

Ergebnis
Apple Computer, Inc. wurde 1977 gegründet.

Das Logo von Apple Computer, Inc. ist ein Apfel.

7. Hilfe in Vim erhalten

Ok, da ist Intenet. Aber die Leute, die immer noch den Mann wie mich benutzen, werden die Inline- Hilfe zu schätzen wissen. Hilfe erhalten Sie thematisch. Oder auf Befehl. Immer dann nützlich, wenn Sie sich nicht an die genaue Syntax oder die Optionen für Vim-Befehle erinnern - oder wenn Sie sich nicht sicher sind, ob es sich bei dem benötigten Befehl um einen normalen Befehl oder einen ex: -Befehl handelt.

Versuche dies!
:Hilfe Hilfe
: hilfe m
: hilfe: m

8. Skripten in Vim

Wenn Sie Vi (m) verwenden, verwenden Sie im Grunde genommen ein visuelles Frontend für einen anderen zugrunde liegenden Editor namens ex . Vielleicht haben Sie bemerkt, wie viele Befehle in den obigen Beispielen mit einem Doppelpunkt (:) beginnen? Das liegt daran, dass es sich um ex- Befehle handelt. Dies ist ein weiterer Vorteil von Vi (m) gegenüber so vielen Texteditoren: Sie können es nicht nur interaktiv verwenden, sondern auch als Skript ausführen.

Warum sollte jemand das tun wollen? Ich persönlich finde das eine großartige Möglichkeit, um die Textverarbeitung zu automatisieren. Außerdem können Sie ein typisches Beispiel direkt von meiner Festplatte sehen.

Es gibt wahrscheinlich einige mysteriöse Befehle in diesem ex-Skript, aber ich kann Ihnen sagen, dass dadurch jeder (eventuell vorhandene) Header aus einem Skript entfernt und durch einen anderen ersetzt wird, der aus der NEW.HEADER-Datei gelesen wird. Dabei wird vor jeder hinzugefügten Zeile ein # hinzugefügt . Es besteht kein Zweifel, dass ich das mit anderen Tools als ex machen könnte. In der Tat war dies sogar das Thema einer unserer vorherigen Bash-Herausforderungen. Aber Ex ist definitiv eine Option.

Wie geheimnisvoll ...
ex some.script << EOT

0pu_

1, / ^ [^ #] / - 1d

0r NEW.HEADER

1, .s / ^ / # /

wq

EOT

Wie ich anfangs sagte, war dieser Artikel absolut kein Tutorial, noch eine Einführung in Vi (m). Nur ein paar Vim-Tipps, die zeigen, warum jemand diesen Editor trotz aller anderen modernen Code-Editoren für Linux, die heute verfügbar sind, immer noch mögen könnte. In gewisser Hinsicht habe ich einige meiner Lieblingszauber mit Ihnen geteilt. Aber in der großen Tradition der Zauberei habe ich nicht enthüllt, wie genau sie funktionieren.

Also, liebe Auszubildende, zögern Sie nicht, den Kommentarbereich unten zu nutzen, um Ihre eigenen Beschwörungen oder Gegenargumente mitzuteilen - oder wenn Sie sich trauen, diese Tricks zu erklären!

Empfohlen

Square 2.0 Icon Pack ist doppelt so schön
2019
Apache OpenOffice könnte bald tot sein und ich werde nicht einmal weinen
2019
Ubuntu Phone: Spezifikationen, Erscheinungsdatum und Preise
2019