Eine Einführung in Vim für Benutzer von Visual Studio-Code

Heiße Tipps, um Vim die Faszination von Visual Studio Code näher zu bringen.

Front-Angelegenheit

Ich möchte damit beginnen, dass dies kein Artikel ist, der die Redaktion beschämt. Sie können einen beliebigen Texteditor verwenden. Es ist wirklich egal. Ich schreibe dies nur, weil ich in Vim ein Produktivitätsniveau gefunden habe, das ich in keinem der zuvor verwendeten Editoren (Sublime Text, Atom oder VSCode) hatte.

Wenn Sie von Vim gehört haben und es ausprobieren möchten, hoffe ich, dass dieser Artikel ein wenig Vertrautheit mit VSCode bietet.

Warum Vim?

Es gibt viele Gründe, Vim zu verwenden. Hier sind einige von mir.

Halten Sie Ihre Hände bei 10 und 2

Wenn Sie ausschließlich die Tastatur verwenden, wird die Geschwindigkeit erhöht, wenn Sie Ihre Hände nicht physisch bewegen müssen. Und hey, vielleicht bist du ein schwarzer Gürtel in Mausbewegung, und du kannst dich mit einer Geschwindigkeit hin und her bewegen, die für das bloße Auge unsichtbar ist. Für den Rest von uns einfachen Menschen braucht es Zeit.

Lassen Sie uns kurz rechnen.

Es dauert 600 ms, um meine Hand von den "Home-Tasten" zur Maus zu bewegen. Im Durchschnitt mache ich das aus Gründen der Argumentation einmal pro Minute, während ich Code schreibe. Sei es zum Scrollen, zum Navigieren zu einer neuen Datei oder ähnlichem.

600 (verschwendete Zeit in ms) x 60 (Zeiten pro Stunde) x 5 (Stunden, die ich tatsächlich codiere) = 180.000 ms verschwendete Zeit =

3 Minuten. Jeder. Tag.

Ja, okay, vielleicht klingt das nicht so schlecht, aber diese 3 Minuten könnten damit verbracht werden, eine Funktion zu schreiben oder Code umzugestalten, ohne mit der Hand herumzuschlagen, als wären Sie Harry Potter!

Geschwindigkeit

Mein Lieblingszitat, das beschreibt, wie es ist, in VIM zu codieren:

"Code mit der Geschwindigkeit des Denkens"

Vim basiert auf der Idee, dass Sie direkt mit Ihrem Computer kommunizieren. Sie sagen ihm, was Sie wollen, und er erledigt es für Sie. Der größte Augenöffner für mich war dieser kleine Leckerbissen:

Um alles zwischen zwei Objekten (Klammern, Anführungszeichen usw.) zu löschen, ist es so einfach wie:

di'

Das ist nur die Oberfläche erstaunlicher Kurzschrift-Dinge, die Sie mit Vim tun können.

Ich bin ein echter Programmierer!

Ein Teil der Reise zum Erlernen von VIM besteht darin, sich mit der Funktionsweise von UNIX vertraut zu machen. Ich habe den Eindruck, je mehr Sie sich Dingen wie Bash aussetzen, desto besser werden Sie Programmierer.

Die Chancen stehen gut, dass Sie ein ziemlich süßes Kommandozeilen-Setup haben. Wäre es nicht schön, wenn Ihr Code-Editor und Ihre Befehlszeile zusammenarbeiten würden?

Wie verlässt du Vim?

Die Wahrscheinlichkeit ist hoch, dass Sie jemals eine Datei auf einem Linux-Server bearbeitet haben und nicht herausfinden konnten, wie die Datei beendet werden kann. Nehmen wir zum Beispiel an, Sie ändern einen SSH-Schlüssel in Digital Ocean. Wenn Sie VIM kennen, müssen Sie sich darüber keine Sorgen machen!

Der wahre Grund, warum ich zu Vim gewechselt bin

Ehrlichkeitszeit. Der eigentliche Katalysator für den Wechsel zu Vim war Kyle Mathews (Schöpfer von Gatsby.js), der es während einer Demo verwendete.

VS-Code-Funktionen und ihre Entsprechungen

Überzeugt? Cool, hier sind einige Tools!

Plugin System

Vim an sich ist ziemlich barebones. Um Plugins hinzuzufügen, müssen wir einen Mechanismus haben, um sie zu verwalten. Plug eingeben:

junegunn / vim-plug

Hinweis: Es gibt einige Plugin-Manager. Ich bin ohne besonderen Grund auf Plug gelandet. Ich mag es und ich hatte keine Probleme damit. Zu Ihrer Information, Vundle ist veraltet.

Dateisuche

Im Laufe der Jahre gab es eine Reihe von Lösungen für die Dateisuche, wie die Vielzahl der Antworten in den Foren zeigt. Ich habe ein paar verschiedene ausprobiert, bin aber auf diese Kombination gestoßen:

Fuzzy Finder (fzf) + Ripgrep

Fzf ist eine wirklich gut gebaute / gepflegte Fuzzy-Suche, die sowohl in der Kommandozeile als auch in vim funktioniert.

Hinweis: Möglicherweise wird Ag (Silver Searcher) in vielen Artikeln angezeigt. Das Ag-bezogene Vim-Plugin wird jedoch nicht mehr verwaltet. Daher wird empfohlen, RipGrep zu verwenden.

Intellisense

Das Auto-Completion-System (Intellisense) in VSCode ist wohl die beste Funktion. Zum Glück wurde es nach Vim portiert!

neoclide / coc.nvim

CoC verfügt über ein eigenes Erweiterungssystem, das das von VSCodes widerspiegelt. Es ist einfach zu bedienen und gut dokumentiert (der wichtigste Teil).

Hinweis: Möglicherweise sehen Sie einige alte Artikel über YouCompleteMe, aber soweit ich das beurteilen kann, wird dies nicht mehr beibehalten.

Dateisystem-Explorer

VSCode verfügt wie die meisten modernen Texteditoren über einen Datei-Explorer. Vims Eingeborener netrwist in Ordnung, und ich habe einige Artikel gesehen, in denen stand, dass Sie nichts anderes brauchen, wie hier. Ich finde jedoch, dass NERDTree zu nützlich ist, um es nicht zu verwenden.

scrooloose / nerdtree

Git-Integration

Ich muss hier ehrlich sein, ich mache die meisten meiner Git-Sachen direkt in Iterm. VSCode hat jedoch einen unglaublich schönen geteilten Git Diff-Bildschirm. Schauen Sie sich dieses Plugin an, um diese Stufe der Git-Integration zu erreichen:

tpope / vim-flüchtig

Zusätzliche Plugins, die Sie möglicherweise möchten

Dies sind einige der Dinge, die ich in Visual Studio Code verwendet habe und die ich in Vim einbringen wollte.

Autocomplete-Klammern

Dieses nette kleine Paket schließt diese lästigen Klammern automatisch.

Jiangmiao / Auto-Paare

Dateisymbole

Dadurch werden Symbole wie NERDTree mit Symbolen versehen.

Ryanoasis / Vim-Devicons

Schöner

Würdest du es nicht wissen, aber das offizielle hübschere Team hat ein Vim-Plugin. Wie schön! Auch unglaublich einfach einzurichten.

schöner / vim-hübscher

Lesen Sie diesen Artikel, damit es beim automatischen Speichern funktioniert.

Schnipsel

Würdest du es nicht wissen? Mit Conquer of Completion kannst du VSCode-Snippets importieren!

Schauen Sie sich das an, um zu zeigen, wie das geht:

neoclide / coc.nvim

Hier ist das React-Snippets-Paket, das ich verwende.

xabikos / vscode-reagieren

Zusätzliches Zeug

Das Zuhause für Vim-Plugins ist Vim Awesome.

Vim Awesome

Toller Ort, um zu sehen, wie Leute Vim benutzen:

Vimcasts - Kostenlose Screencasts zum Texteditor Vim

Dotfiles

Ich habe ein paar neu zugeordnete Schlüssel, um die Sache einfacher zu machen. Schauen Sie sich meine Dotfiles für all diese an.

DarthOstrich / Dotfiles

Abschließende Gedanken

Meine Reise

Ich benutze jetzt ausschließlich Vim, nachdem ich ungefähr ein Jahr damit verbracht habe, es zu lernen. Anfangs habe ich es nur für meine persönlichen Projekte verwendet, weil meine Produktivität niedrig war. Ich musste immer wieder anhalten, um nachzuschlagen, wie man etwas macht. Allerdings habe ich VSCode vor ungefähr 4 Monaten vollständig gelöscht und ich habe nicht vor, zurückzukehren.

Es braucht Disziplin

Vim zu lernen kann entmutigend wirken, und ehrlich gesagt ist es das auch. Es erfordert selbst auferlegte Disziplin. Ist aber nicht alles in der Entwicklung? Es gibt kein Werkzeug / keine Sprache / kein Framework, das ich jemals gelernt habe und das kein gewisses Maß an bewusster Übung erfordert.

Vim ist eine Wahl des Lebensstils. Es wird eine Weile dauern, bis man sich daran gewöhnt hat, und es wird manchmal frustrierend sein. Wenn Sie sich jedoch daran halten, wird Ihr Workflow garantiert verbessert. Wenn Sie weitere Tipps oder Fragen haben, lassen Sie diese bitte unten fallen. Wie immer viel Spaß beim Codieren!

Zusätzliche Ressourcen zum Lernen

Vim schnell meistern - Jovica Ilic

8 Vim-Tricks, die Sie vom Anfänger zum Experten führen

Verweise

Wechseln zu Vim

10 einfache Linux-Tipps, die 50% meiner Zeit in der Befehlszeile sparen