Ich denke, der Name impliziert, dass wir heute über Vim sprechen werden! Was ist das? Warum wird das benötigt? Wie benutzt man es?
Viele, die meinen letzten Artikel gelesen haben, könnten ausrufen:

In der Tat kann eine solche Praxis als unnötig angesehen werden. Zu meinem tiefsten Bedauern wird es auch jetzt noch Menschen geben, die ähnlich argumentieren. Für diejenigen, die sich nicht auskennen, erkläre ich: Vim ist ein altmodischer Texteditor, der im Terminal arbeitet und einen nicht standardmäßigen Ansatz zum Bearbeiten und Schreiben hat.

Es stellt sich eine faire Frage: „Warum das alte Programm 2018 verwenden und auch ohne grafische Oberfläche?“ Die Antwort ist einfach - es ist bequem. Ich stimme zu, so dass Sie absolut über jeden Editor sagen können, aber dennoch ist dieser Fall sehr ungewöhnlich.
Zunächst einmal ist Vim nicht alt - er ist erst 27 Jahre alt. Er ist der Erbe des klassischen Vi-Editors. Es ist besser an moderne Systeme angepasst und verfügt über ein breiteres Spektrum an Funktionen. Mit anderen Worten, sein Name (Vi Improved) ist völlig gerechtfertigt. Ich möchte auch darauf hinweisen, dass es eine noch neuere Umsetzung derselben Ideen gibt - neovim.
Was ist der Unterschied?

Wenn Sie sich Youtube verschiedene Videos zu diesem Thema ansehen, dann sprechen sie meistens über die metaphysische Komponente des Problems. Das heißt, über den Unterschied in Ideologien, Arten der Projektentwicklung und dergleichen. Es gibt keine grundlegenden Unterschiede für den Endbenutzer. Es können jedoch zwei Punkte geklärt werden: Einige Plugins lassen sich in neovim einfacher installieren und trennen die Benutzeroberfläche vom Kern des Programms. Ich werde die zweite ausführlicher erläutern.
Ich denke, unter Ihnen wird es Menschen (und Katzen) geben, die immer auf das Angebot reagieren, zu einem anderen Redakteur wie diesem zu wechseln:

Nun, Neovim eilt zur Rettung! Dank ihm gibt es jetzt in vielen modernen IDEs und "Programmier-Notebooks" einen Emulator der Vim-Funktionalität. Auf diese Weise können Sie weiterhin Ihren bevorzugten Sublime-Text oder CLion mit all Ihren Plugins verwenden, gleichzeitig Ihre Produktivität beim Schreiben von Code spürbar steigern und mehr Freude daran haben (dazu später mehr). Dies ist auch eine gute Möglichkeit, die FAQ zu erweitern, da "echte Hacker entweder Vim oder Emacs verwenden".
"Nun, ich habe beschlossen, einen Vintage-Editor zu studieren, aber warum Vim und nicht mindestens die gleichen Emacs?" Nun, das ist ein kontroverses Thema. Emacs ist eine leistungsstärkere Lösung, die alles kann (Sie können sogar eine Schlange darin spielen). Seine Stärke ist jedoch auch seine Schwäche. Es ist zu umfangreich und komplex, was sich in einer höheren Komplexität der Entwicklung und Genauigkeit des Eisens niederschlägt. Das letzte Argument mag jetzt albern klingen, da es sich auch um einen Konsoleneditor handelt. Bei einer Reihe von Aufgaben (z. B. Remoteverbindung über SSH) kann sich dieser Punkt jedoch als kritisch herausstellen.
(Emacs Benutzer nach diesen Zeilen)Nun, wir haben herausgefunden, was Vim ist, aber es bleibt zu verstehen, warum und wie man es benutzt.
"Warum mochten alle Vim so sehr, dass sie es hinzufügen, wo immer es möglich ist und wo immer es unmöglich ist?" (Emacs hat es übrigens auch. Es scheint mir immer einfacher zu sein, Dinge aufzulisten, die nicht da sind, aber das ist kein Thema.) Die Antwort auf diese Frage ist nicht schwierig - ihre Philosophie.
Sie können nicht einfach Text in VIM starten und eingeben. Hierfür gibt es einen separaten Modus - „Einfügemodus“. Wenn Sie das Programm starten, befinden Sie sich im normalen Modus, in dem Sie die Möglichkeit haben, Befehle zum Bearbeiten von Text einzugeben und zwischen verschiedenen Modi dieses Editors zu wechseln. "Aber es ist unangenehm! Ich möchte nur den Text eingeben! “ Rein technisch ist auch eine Schreibmaschine für diese Aufgabe geeignet, aber ich werde trotzdem ohne Sarkasmus antworten. Wenn sich die meisten Redakteure auf das Schreiben von Code konzentrieren, verschiebt Vim ihn auf Textbearbeitung und führt ihn auf seine eigene Weise aus.
(Eigentlich hat dieses Bild einen tiefen Untertext. Wenn es eine Minute gibt, dann lesen Sie über die Persona-Serie japanischer Rollenspiele.)Das Wichtigste beim Lernen von Vim-Befehlen ist, dass sie meist nicht isoliert sind. Betrachten Sie dabei die gesamte Sprache, in der sie in Verben, Substantive und Adjektive (Modifikatoren) unterteilt sind. Trotz der Tatsache, dass jedes Team ein einzelner Charakter ist, hat jeder von ihnen ein Analogon zum englischen Wort, und ihre Reihenfolge kann in einen vollwertigen Satz übersetzt werden!

Schauen wir uns ein paar Beispiele an, aber halten Sie zuerst ein anderes Bild (diesmal mit etwas Nützlichem):

1).
d2w
==> Lösche zwei Wörter.

2).
AMew<Esc>
==> Am Ende der Zeile "Mew" anhängen und zum normalen Modus zurückkehren.

3).
f(ci(Pakahontas<Esc>
==> Finde ein Paar Klammern und ändere ihren inneren Inhalt in "Pakahontas" und kehre zum normalen Modus zurück.

Sehen Sie? Absolut nichts kompliziertes! Natürlich erfordert dieser Ansatz Gewöhnung und ständiges Üben, da Sie nicht nur alle Kombinationen lernen können - Sie müssen sie fühlen. Ich schreibe Code in Vim nicht, weil er schneller zu tippen ist (ich tippe bereits langsam, wie Sie vielleicht bemerkt haben, und ich weiß nicht, wie man blind tippt), sondern weil er natürlicher ist. Anstelle eines Haufens von Strg, Umschalt oder Alt (es gibt Befehle, aber es gibt nur wenige von ihnen), eine sehr verständliche und vor allem humane Bearbeitungssprache.
(Unerwartet, richtig?)Aber bevor wir fertig sind, möchte ich ein paar Kommentare einfügen:
I. Trotz der Tatsache, dass Sie in Vim die Pfeile und die Maus verwenden können (die zweite ist in der Datei "~ / .vimrc" konfiguriert), wird dies nicht unbedingt empfohlen. Es gibt eine Menge interessanterer Befehle zum Bewegen des Cursors über den Text (und den Bildschirm), nur sind sie nicht mehr so intuitiv wie das Bearbeiten von Befehlen und Sie müssen sie stopfen.
(Es ist Hacking-Zeit!)II. In Vim gibt es wie in vielen anderen Editoren einen Befehlsmodus, der aufgerufen wird, wenn die Taste ':' gedrückt wird. Das Symbol '!' hat eine doppelte Bedeutung:
a) Wenn es unmittelbar nach ':' steht, kann ein vollwertiger Befehl für das Terminal folgen. Obwohl einige von ihnen als Befehle des Editors selbst dupliziert werden, kann es beispielsweise nützlich sein, den Compiler aufzurufen.
b) Wenn es nach dem Vim-Befehl steht, wird es ausgeführt, ohne die Änderungen an der Datei zu speichern. Dies hängt übrigens mit einem Fehler (oder, wenn Sie möchten, einer Funktion) zusammen. Wenn Sie etwas mit dem Text gemacht haben, wird der Editor auch dann nicht geschlossen, wenn Sie ihn nicht speichern oder angeben '!'.
(Haben Sie bereits gespürt, wie Vim sich um Ihre Daten kümmert?)III. Verschiedene Editor- und Plugin-Einstellungen können im obigen "~ / .vimrc" geändert werden. Es gibt Einstellungen für jeden Geschmack und jede Farbe, nur sind sie nicht in der Datei selbst enthalten. Standardmäßig ist es leer. Verwenden Sie den Befehl ": help", um die benötigten Parameter zu finden. Danach können Sie den Namen einer bestimmten Komponente oder eines bestimmten Plug-Ins hinzufügen, um sofort zu den Informationen zu springen, an denen Sie interessiert sind. Aber natürlich wird das Internet in dieser Hinsicht komfortabler sein.
IV. In Vim gibt es mehrere Befehle (z. B. 'q'), die vom Benutzer definiert werden sollen (in "~ / .vimrc"). Wenn Sie jedoch versuchen, einen Wert für sie direkt festzulegen, werden sie mit einer Verzögerung ausgelöst, da sie einen zweiten Befehl nach sich selbst erwarten (sie sollten bestimmt werden). Wenn Sie einen Ein-Tasten-Befehl benötigen, empfehle ich die Verwendung von 's', weil seine Funktionalität ist praktisch die gleiche wie 'c'. Ersatz kann sozusagen ersetzt werden.
V. Team '.' besitzt unglaubliche Macht in diesem Editor. Sie weiß, wie man den vorherigen Befehl (oder einen ganzen Satz von ihnen) wiederholt. Wenn Sie kein Makro aufzeichnen möchten, ist es im Prinzip ein hervorragendes Werkzeug, um den Code mit "Pasties" zu füllen:
VI. Vim erinnert mich an einige alte 48K ZX Spectrum-Computer. Sie hatten auch Ein-Knopf-Befehle, aber sie waren für die Basic-Programmiersprache. Daher haben die Entwickler versucht, den für das Programm benötigten RAM-Speicher zu reduzieren.

Als Schulungsmaterial empfehle ich das Vimtutor-Programm. Rein technisch gesehen öffnet es einfach eine Datei mit einem kurzen Tutorial in Vim, aber dieser Ansatz ermöglicht es Ihnen, parallel zum Studium des theoretischen Teils zu üben. Und dann üben, üben und wieder üben!
Nun, eigentlich alles, was ich über Vim sagen wollte. Ehrlich gesagt bin ich sehr zufrieden mit diesem Herausgeber. Seine Philosophie ist sehr ansteckend und dem gesamten Unix-System ähnlich (alles ist einfach, klar und logisch, erfordert jedoch Gewöhnung und Erinnerung). Wenn Sie also nach einem guten Texteditor suchen oder eine neue Textbearbeitungserfahrung erhalten möchten, werden Sie keinen besseren Ort finden.
Ich wünsche Ihnen Glück, Gesundheit und KDE, nicht zu fallen!
Quellen1) Zum Thema:
a) Eigentlich Vimtutor
b) Das Bild mit der Tastatur wurde von der
viemu- Website aufgenommen
c) Ich habe auch ein
Wikibook zu diesem Thema gelesen.
2) Off Topic:
a) Über die Persona-Serie auf Youtube gibt es viele Videos mit ihrer detaillierten Analyse. Am wertvollsten sind wahrscheinlich die Videos von
Filinovs Place kakala , aber der Autor hat bisher beim zweiten zweiten Teil angehalten (dies ist kein Tippfehler).
b) Über Spectrum hat kürzlich ein gutes Video von
Dmitry Moiseev aufgenommenc) Der Autor des Bildes aus meinem Profilbild - Fluff-Kevlar