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:
Ils peuvent également être plus complexes comme celui-ci qui crée l'entête d'une classe en C++:
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.
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
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.
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.
Une fois l'installation du paquet complétée, UltiSnips devrait fonctionner correctment.