He estado usando ultisnips durante varias semanas.
Creo que las principales ventajas de este complemento son las siguientes:
- Es bastante rápido incluso con una gran cantidad de fragmentos disponibles.
- La sintaxis básica para definir un nuevo fragmento es fácil de entender, por lo tanto, es fácil crear rápidamente un nuevo fragmento haciendo lo que desea hacer. (Para fragmentos más complejos se puede requerir un trabajo adicional).
- Funciona muy bien fuera de la caja; Una configuración básica le permite utilizar fragmentos muy rápidamente.
- Es realmente configurable. Incluso si la configuración básica funciona bien, si eres un usuario avanzado, puedes sintonizarlo muy bien.
En primer lugar, ultisnips es un motor de fragmentos, lo que significa que el complemento proporciona características para usar fragmentos pero no proporciona los fragmentos en sí. Para obtener los fragmentos, el autor recomienda
los fragmentos vim .
Una vez que haya instalado ambos complementos, podrá usar sus fragmentos.
Los fragmentos de definiciones se almacenan en archivos denominados siguientes patrones:
ft.snippets
, ft_*.snippets
o ft/*
, donde ft
es el 'tipo de archivo' del documento actual y *
es una forma de concha concordancia de comodines cualquier cadena incluyendo la cadena vacía. (Tenga en cuenta que cuda.cpp
se admite la sintaxis punteada de tipo de archivo ).
De esta manera, los fragmentos específicos de un tipo de archivo se expanden solo cuando se establece el tipo de archivo del búfer. Un tipo de archivo especial all
está disponible para crear fragmentos expandidos en todos los buffers.
Además de los fragmentos proporcionados por vim-snippets, el usuario puede definir sus propios fragmentos. Mi recomendación sería colocarlos en el directorio de
~/.vim/my-snippets/Ultisnips
esta manera Ultisnips los encontrará sin configuración adicional y es fácil mantenerlos en un repositorio de archivos de puntos.
Para expandir los fragmentos, Ultisnips proporciona una variable g:UltiSnipsExpandTrigger
que define el mapeo que desencadenará la expansión (elegí
**cuál es bastante conveniente para mí). Tenga en cuenta que una integración debería ser posible pero no la probé yo sola).
Para los usuarios avanzados, Ultisnips también proporciona algunas funciones para personalizar el comportamiento de la expansión o para activarla de manera diferente. Ver:h
UltiSnips-trigger-functions
Este es el primer administrador de fragmentos que realmente utilicé ampliamente y creo que este es un buen comienzo, por su simplicidad fuera de la caja y su posibilidad de ajuste.
Finalmente, aquí hay una lista de screencasts que ofrecen una buena introducción al complemento: