UltiSnips est un des modules d'extension de Vim que j'utilise le plus. Il permet d'écrire des macros (appelés snippets) qui insèrent des bouts de texte prédéfinis à l'endroit désiré dans le fichier. Ces snippets me permettent d'automatiser l'écriture de bout de code répétitif. Ils peuvent être plutôt simple comme celui-ci qui écrit le code C++ nécessaire pour imprimer du texte à l'écran:

UltiSnips macro simple

Ils peuvent également être plus complexes comme celui-ci qui crée l'entête d'une classe en C++:

UltiSnips macro complexe

UltiSnips requiert Python3 pour rouler. Il faut donc que Vim ait été compilé avec le support pour Python3. Pour vérifier, démarrez Vim avec l'argument --version.

Vim Version sous Cygwin

C'est heureusement le cas pour la version de Vim de la logithèque de Cygwin.

Il ne suffit cependant pas d'avoir installé Python pour qu'UltiSnips fonctionne automatiquement. Il faut avoir installé la même version que celle pour laquelle Vim a été compilé. Pour déterminer si le lien entre Vim et Python fonctionne bien, on peut simplement essayer d'exécuter n'importe quelle expression Python dans Vim à l'aide de la command :python3. 1

Détection de la version de Python dans Vim sous Cygwin

Si le lien Vim/Python est bon, l'expression sera exécutée sans erreur. Dans le cas contraire, un message d'erreur apparaîtra au bas de la fenêtre.

Message d'erreur donnant la version de Python dans Vim sous Cygwin

On voit ici que Vim recherche la version 3.7 de Python. Il ne suffit donc que de retourner dans l'application d'installation de Cygwin et installer le paquet python37.

Paquet Python37 sous Cygwin

Une fois l'installation du paquet complétée, UltiSnips devrait fonctionner correctment.

  1. UltiSnips ne support plus Python2 depuis le commit d2f42d6. Il est donc important de tester à l'aide de la command :python3.