Website-Suche

So erstellen und verwalten Sie Snippets in Vim mit Ultisnips


Snippets sind kleine Fragmente von wiederverwendbarem Code, die in allen gängigen Texteditoren definiert, organisiert und mit Tastenkombinationen verknüpft werden können. Obwohl es in Vim möglich ist, Snippets zu erstellen, ohne ein Plugin zu verwenden, bietet uns Ultisnips zusätzliche Funktionen und schreibt Snippets mit einer sauberen und gut dokumentierten Syntax.

In diesem Artikel lernen wir, wie man das Ultisnips-Plugin installiert und wie man es verwendet, um Snippets in Vim zu schreiben und zu verwalten.

In diesem Tutorial lernen Sie:

  • So installieren Sie das Ultisnips-Plugin und einige vordefinierte Snippets
  • Wie benutzt man Ultisnips?
  • So erstellen Sie benutzerdefinierte Snippets

Installieren von Ultisnips

Es gibt verschiedene Möglichkeiten, Ultisnips oder jedes Vim-Plugin im Allgemeinen zu installieren. Wir können das native Paketsystem von Vim, einen traditionellen Plugin-Loader wie Pathogen oder einen richtigen Plugin-Manager wie Plug verwenden. Lassen Sie uns diese Optionen kurz untersuchen.

Installation von Ultisnips mit dem nativen Paketsystem von Vim

Neuere Versionen von Vim (>= 8) sind in der Lage, Plugins zu laden und zu organisieren, ohne externe Plugin-Manager zu verwenden, dank des nativen Paketsystems. Um ein Plugin mit dieser Methode zu installieren, müssen wir den folgenden Verzeichnisbaum unter ~/.vim erstellen:

mkdir -p ~/.vim/pack/plugins/{start,opt}

Im obigen Beispiel ist "plugins" ein beliebiger Name für ein Verzeichnis unter ~/.vim/pack, das zwei Unterverzeichnisse enthält: start und opt. Plugins, die wir unter ersterem installieren, werden automatisch geladen, diejenigen, die wir unter letzterem installieren, werden bei Bedarf geladen. Hier installieren wir das Ultisnips-Plugin mit der ersten Strategie:

git clone https://github.com/SirVer/ultisnips ~/.vim/pack/plugins/start/ultisnips

Installation von Ultisnips mit Pathogen

In älteren Vim-Versionen konnten ähnliche Funktionalitäten wie das native Paketsystem mit dem Pathogen-Plugin abgerufen werden. Pathogen ermöglicht es uns, jedes Plugin in einem eigenen Verzeichnis zu installieren, indem wir den Vim-Laufzeitpfad ändern. Um Pathogen zu installieren, das selbst ein Plugin ist, können wir die folgenden Befehle ausführen:

mkdir -p ~/.vim/{autoload,bundle}
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

Der Befehl erstellt die Verzeichnisse "autoload" und "bundle" unter ~/.vim. Ersteres ist ein natives Vim-Verzeichnis: Der Editor lädt automatisch die darin enthaltenen Skripte. Dort haben wir Pathogen heruntergeladen. Letzteres ist das Verzeichnis, in dem Pathogen nach Plugins sucht und in dem wir das Ultisnips-Repository klonen müssen:

git clone https://github.com/SirVer/ultisnips ~/.vim/bundle/ultisnips

Damit Pathogen funktioniert, müssen wir diesen Code zu unserer ~/.vimrc-Datei hinzufügen:

execute pathogen#infect()

Installieren von Ultisnips mit Plug

Die Plugin-Installationsmethoden, die wir in den vorherigen Beispielen verwendet haben, sind sehr einfach. Sowohl Pathogen als auch das native Vim-System sind keine "richtigen" Plugin-Manager: Sie lassen uns nur Plugins auf saubere Weise organisieren und laden.  Wenn wir nach fortgeschritteneren Funktionen suchen, müssen wir einen richtigen Plugin-Manager verwenden: Einer der am häufigsten verwendeten ist Plug. Dieser Plugin-Manager hat die Möglichkeit, Plugins selbst zu installieren, zu aktualisieren und zu entfernen; Es ermöglicht uns, das Laden von Plugins mit bestimmten Dateitypen zu verknüpfen und Funktionen nach der Installation auszuführen.

Um Plug automatisch zu installieren, wenn wir Vim zum ersten Mal öffnen, können wir den folgenden Code zu ~/.vimrc hinzufügen:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif

Wir listen die Plugins, die wir installieren möchten, zwischen den Funktionsaufrufen plug#begin() und plug#end() auf. In diesem Fall schreiben wir, um Ultisnips zu installieren:

plug#begin()
Plug 'SirVer/ultisnips'
plug#end()

Um das Plugin tatsächlich zu installieren, führen wir Folgendes aus:

:PlugInstall

Zuerst drückten wir i, um in den "Insert"-Modus zu wechseln, dann schrieben wir "a" (denken Sie an das <a>-Tag) und drückten <Tab>, was die Standardtaste "ExpandTrigger" ist. Wie Sie im Video sehen können, wurde das Snippet erweitert und der Cursor bewegte sich auf den Tabstop "$1".

In dem Snippet, das wir als Beispiel verwenden, ist der Tabstop "$2" im ersten "verschachtelt". Um dorthin zu navigieren, haben wir Strg+j gedrückt (der "JumpForwardTrigger"): Der Wert des zweiten Tabstopps wurde ausgewählt (der "url.com"-Teil) und wir haben ihn durch "linuxconfig.org" ersetzt.

Durch erneutes Drücken von Strg+j sind wir zum dritten Tabstop gewechselt, dann wieder zum vierten, der dem Linkanker entspricht, den wir geändert haben. Sehen Sie, wie leistungsfähig das Ultisnips-Plugin sein kann? Wir können sogar unsere eigenen Snippets definieren, mal sehen, wie.

Wieder einmal wechselten wir in den Vim-Einfügemodus, indem wir "i " drückten. Zu diesem Zeitpunkt wurde das Snippet erweitert, sobald wir "pr" (den Snippet-Trigger) eingegeben haben, auch wenn wir die Taste "ExpandTrigger" nicht verwendet haben. Dies geschah, weil wir die Option "A" (Automatisch) in der Snippet-Definition verwendet haben.

Wie erwartet ist der Standardwert des $1 Tabstops ausgewählt ("python"). In diesem Fall haben wir den Text durch "bash" ersetzt. Durch Drücken von Strg+j haben wir den Cursor zum nächsten Tabstop bewegt (innerhalb der Tags <code> und </code>). wo wir unseren Code geschrieben haben.

Schlüsse

In diesem Tutorial haben wir gelernt, wie man Snippets in Vim mit dem UltiSnips-Plugin verwaltet. Wir haben gesehen, wie man das Plugin zusammen mit einigen vordefinierten Snippets installiert und wir haben gelernt, wie man sein eigenes schreibt. UltiSnips ist ein sehr leistungsfähiges Plugin; Um zu lernen, wie Sie es in vollem Umfang nutzen können, können Sie neben der offiziellen Dokumentation auch einige Video-Tutorials ansehen, die auf der Projektseite auf Github verlinkt sind.

Verwandte Artikel: