Recherche sur le site Web

Comment créer et gérer des extraits dans Vim avec Ultisnips


Les extraits sont de petits fragments de code réutilisable qui, dans tous les principaux éditeurs de texte, peuvent être définis, organisés et associés à des raccourcis clavier. Bien que dans Vim, il soit possible de créer des extraits sans utiliser de plugin, Ultisnips nous fournit des fonctionnalités supplémentaires et écrit des extraits en utilisant une syntaxe propre et bien documentée.

Dans cet article, nous apprenons comment installer le plugin Ultisnips et comment l’utiliser pour écrire et gérer des extraits dans Vim.

Dans ce tutoriel, vous apprendrez :

  • Comment installer le plugin Ultisnips et quelques extraits prédéfinis
  • Comment utiliser Ultisnips
  • Comment créer des extraits personnalisés

Installation d’Ultisnips

Il existe différentes façons d’installer Ultisnips, ou n’importe quel plugin Vim, en général. Nous pouvons utiliser le système de paquets natif Vim, un chargeur de plugins traditionnel comme Pathogen, ou un gestionnaire de plugins approprié comme Plug. Explorons brièvement ces options.

Installation d’Ultisnips à l’aide du système de paquetage natif Vim

Les versions récentes de Vim (>= 8) sont capables de charger et d’organiser des plugins sans utiliser de gestionnaires de plugins externes, grâce au système de paquets natif. Pour installer un plugin en utilisant cette méthode, nous devons créer l’arborescence de répertoire suivante sous ~/.vim :

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

Dans l’exemple ci-dessus, « plugins » est un nom arbitraire pour un répertoire sous ~/.vim/pack, contenant deux sous-répertoires : start et opt. Les plugins que nous installons sous le premier sont chargés automatiquement, ceux que nous installons sous le second sont chargés à la demande. Ici, nous installons le plugin Ultisnips en utilisant la première stratégie :

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

Installation d’Ultisnips à l’aide d’agents pathogènes

Dans les anciennes versions de Vim, des fonctionnalités similaires à celles fournies par le système de paquetage natif pouvaient être obtenues à l’aide du plugin Pathogen. Pathogen nous a permis d’installer chaque plugin dans son propre répertoire en modifiant le chemin d’exécution de Vim. Pour installer Pathogen, qui est lui-même un plugin, nous pouvons exécuter les commandes suivantes :

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

La commande crée les répertoires « autoload » et « bundle » sous ~/.vim. Le premier est un répertoire Vim natif : l’éditeur charge automatiquement les scripts qu’il contient. C’est là que nous avons téléchargé Pathogen. Ce dernier est le répertoire où Pathogen recherche les plugins, et où nous devons cloner le dépôt Ultisnips :

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

Pour que Pathogen fonctionne, nous devons ajouter ce code à notre fichier ~/.vimrc :

execute pathogen#infect()

Installation d’Ultisnips à l’aide de Plug

Les méthodes d’installation de plugins que nous avons utilisées dans les exemples précédents sont très simples. Pathogen et le système natif Vim ne sont pas de « vrais » gestionnaires de plugins : ils nous permettent simplement d’organiser et de charger les plugins de manière propre. Si nous recherchons des fonctionnalités plus avancées, nous devons utiliser un gestionnaire de plugins approprié : l’un des plus utilisés est Plug. Ce gestionnaire de plugins a la capacité d’installer, de mettre à jour et de supprimer des plugins par lui-même; Il nous permet d’associer le chargement des plugins à des types de fichiers spécifiques et d’exécuter des fonctions post-installation.

Pour installer Plug automatiquement la première fois que nous ouvrons Vim, nous pouvons ajouter le code suivant à ~/.vimrc :

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

Nous listons les plugins que nous voulons installer entre les appels de fonction plug#begin() et plug#end(). Dans ce cas, pour installer Ultisnips, nous écrivons :

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

Pour installer le plugin, nous exécutons :

:PlugInstall

Tout d’abord, nous avons appuyé sur i pour entrer en mode « insert », puis nous avons écrit « a » (pensez à la balise <a>) et appuyé sur <tab>, qui est la touche « ExpandTrigger » par défaut. Comme vous pouvez le voir dans la vidéo, l’extrait s’est développé et le curseur s’est déplacé sur le taquet « 1 $».

Dans l’extrait que nous utilisons comme exemple, le tabulateur « $2 » est « imbriqué » à l’intérieur du premier. Pour y accéder, nous avons appuyé sur Ctrl+j (le « JumpForwardTrigger ») : la valeur du deuxième tabulateur a été sélectionnée (la partie « url.com »), et nous l’avons remplacée par « linuxconfig.org ».

En appuyant à nouveau sur Ctrl+j, nous sommes passés au troisième but, puis à nouveau au quatrième qui correspond à l’ancre de lien, que nous avons modifié. Vous voyez à quel point le plugin Ultisnips peut être puissant? Nous pouvons même définir nos propres extraits, voyons comment.

Une fois de plus, nous sommes entrés en mode d’insertion Vim en appuyant sur « i ». À ce moment-là, l’extrait s’est développé dès que nous avons tapé « pr » (le déclencheur de l’extrait), même si nous n’avons pas utilisé la touche « ExpandTrigger ». Cela s’est produit parce que nous avons utilisé l’option « A » (Automatique) dans la définition de l’extrait.

Comme prévu, la valeur par défaut du tabstop $1 est sélectionnée (« python »). Dans ce cas, nous avons remplacé le texte par « bash ». En appuyant sur Ctrl+j, nous avons déplacé le curseur vers le taquet suivant (à l’intérieur des balises <code> et </code>). où nous avons écrit notre code.

Conclusions

Dans ce tutoriel, nous avons appris à gérer les extraits dans Vim avec le plugin UltiSnips. Nous avons vu comment installer le plugin avec quelques extraits prédéfinis et nous avons appris à écrire le nôtre. UltiSnips est un plugin très puissant; pour apprendre à l’utiliser à son plein potentiel, en plus de lire la documentation officielle, vous pouvez regarder quelques tutoriels vidéo liés à la page du projet sur Github.

Articles connexes: