J'utilise les ultisnips depuis plusieurs semaines maintenant.
Je pense que les principaux avantages de ce plugin sont les suivants:
- C'est assez rapide même avec un grand nombre d'extraits disponibles.
- La syntaxe de base pour définir un nouvel extrait est facile à comprendre, il est donc facile de créer rapidement un nouvel extrait en faisant ce que vous voulez faire. (Pour des extraits plus complexes, un travail supplémentaire peut être nécessaire.)
- Cela fonctionne très bien hors de la boîte; une configuration de base vous permet d'utiliser des extraits de code très rapidement.
- C'est vraiment configurable. Même si la configuration de base fonctionne bien, si vous êtes un utilisateur expérimenté, vous pouvez vraiment l'ajuster assez finement.
Tout d'abord, ultisnips est un moteur d'extraits qui signifie que le plugin fournit des fonctionnalités pour utiliser des extraits mais ne fournit pas les extraits eux-mêmes. Pour obtenir les extraits, l'auteur recommande
vim-snippets .
Une fois les deux plugins installés, vous pourrez utiliser vos extraits.
Les snippets de définitions sont stockées dans des fichiers nommés motifs suivants:
ft.snippets
, ft_*.snippets
ou ft/*
, où ft
est le « filetype » du document en cours et *
est une coquille générique correspondant à toute chaîne , y compris la chaîne vide. (Notez que la syntaxe de type de fichier en pointillés comme cuda.cpp
est prise en charge.)
De cette façon, les extraits de code spécifiques à un type de fichier ne sont développés que lorsque le type de fichier du tampon est défini. Un type de fichier spécial all
est disponible pour créer des extraits étendus sur tous les tampons.
En plus des extraits fournis par vim-snippets, l'utilisateur peut définir ses propres extraits. Ma recommandation serait de les placer dans le répertoire de
~/.vim/my-snippets/Ultisnips
cette façon, Ultisnips les trouvera sans configuration supplémentaire et il est facile de les conserver dans un référentiel dotfile.
Pour développer les extraits, Ultisnips fournit une variable g:UltiSnipsExpandTrigger
qui définit le mappage qui déclenchera l'expansion (j'ai choisi celle
**qui me convient le mieux). Notez qu'une intégration devrait être possible mais je ne l'ai pas testée par moi-même).
Pour les utilisateurs expérimentés, Ultisnips fournit également certaines fonctions pour personnaliser le comportement de l'extension ou pour la déclencher différemment. Voir:h
UltiSnips-trigger-functions
Il s'agit du premier gestionnaire d'extraits de code que j'ai vraiment beaucoup utilisé et je pense que c'est un bon début pour sa simplicité et sa possibilité d'être réglé.
Enfin, voici une liste de screencasts qui donnent une bonne introduction au plugin: