Ich benutze Ultisnips seit einigen Wochen.
Ich denke, die Hauptvorteile dieses Plugins sind die folgenden:
- Es ist ziemlich schnell, auch wenn eine große Anzahl von Snippets verfügbar ist.
- Die grundlegende Syntax zum Definieren eines neuen Snippets ist einfach zu verstehen, sodass Sie schnell ein neues Snippet erstellen können, das das tut, was Sie tun möchten. (Für komplexere Snippets kann zusätzliche Arbeit erforderlich sein.)
- Es funktioniert sehr gut aus der Box; Mit einer Grundkonfiguration können Sie Snippets sehr schnell verwenden.
- Es ist wirklich konfigurierbar. Auch wenn die Grundkonfiguration gut funktioniert, können Sie sie als Power-User wirklich sehr fein einstellen.
Zunächst einmal ist ultisnip eine Snippet-Engine, was bedeutet, dass das Plugin Funktionen zur Verwendung von Snippets bereitstellt, die Snippets selbst jedoch nicht. Um die Snippets zu erhalten, empfiehlt der Autor
vim-snippets .
Sobald Sie beide Plugins installiert haben, können Sie Ihre Snippets verwenden.
Die Schnipsel Begriffsbestimmungen in Dateien gespeichert sind , folgenden Muster genannt:
ft.snippets
, ft_*.snippets
, oder ft/*
, wo ft
ist der ‚Dateityp‘ des aktuellen Dokuments und *
eine schalenartige Wildcard - Matching beliebige Zeichenfolge einschließlich dem leeren String. (Beachten Sie, dass die Syntax von gepunkteten Dateitypen cuda.cpp
unterstützt wird.)
Auf diese Weise werden für einen Dateityp spezifische Snippets nur dann erweitert, wenn der Dateityp des Puffers festgelegt ist. Ein spezieller Dateityp all
ist verfügbar, um Snippets zu erstellen, die auf allen Puffern erweitert sind.
Zusätzlich zu den von vim-snippets bereitgestellten Snippets kann der Benutzer eigene Snippets definieren. Meine Empfehlung wäre, sie so in das Verzeichnis zu stellen
~/.vim/my-snippets/Ultisnips
, dass Ultisnips sie ohne zusätzliche Konfiguration findet, und es ist einfach, sie in einem Dotfile-Repository zu verwalten.
Um die Snippets zu erweitern, stellt Ultisnips eine Variable zur Verfügung, g:UltiSnipsExpandTrigger
die das Mapping definiert, das die Erweiterung auslöst (ich habe gewählt,
**was für mich recht praktisch ist). Beachten Sie, dass eine Integration möglich sein sollte, aber ich habe es nicht selbst getestet).
Für Power-User bietet Ultisnips auch einige Funktionen, um das Verhalten der Erweiterung anzupassen oder sie anders auszulösen. Sehen:h
UltiSnips-trigger-functions
Dies ist der erste Snippet-Manager, den ich wirklich ausgiebig verwendet habe, und ich denke, dies ist zunächst einmal ein guter, da er sofort einsatzbereit ist und gestimmt werden kann.
Zum Schluss hier eine Liste von Screencasts, die eine gute Einführung in das Plugin geben: