Aunque no existe una sintaxis específica para los alias, puede lograr el mismo efecto utilizando post_jump
:
# c.snippets
global !p
def expand(snip):
if snip.tabstop != 1:
return
vim.eval('feedkeys("\<C-R>=UltiSnips#ExpandSnippet()\<CR>")')
endglobal
snippet incstdlib "#include <stdlib.h>" !b
#include <stdlib.h> /* exit(), malloc(), free() */
$0
endsnippet
post_jump "expand(snip)"
snippet incexit "#include <stdlib.h>" !b
incstdlib$1
endsnippet
En este archivo de fragmentos, el activador incexit
es un "alias" del activador incstdlib
. En realidad se incexit
expande incstdlib
y expand(snip)
se llama cuando UltiSnips se mueve al tabulador $1
. El expand(snip)
solo ejecuta la función VimScript UltiSnips#ExpandSnippet
que se expandirá incstdlib
en su forma expandida final #include <stdlib.h>
.
Otra opción es utilizar el soporte de expresión regular UltiSnips en su lugar:
snippet "inc(true|false|bool)" "#include <stdbool.h>" r
#include <stdbool.h> /* true, false */
endsnippet
Aquí tendrá tres desencadenantes inctrue
, incfalse
y incbool
que son efectivamente los mismos. El único inconveniente es que los complementos de autocompletado como YouCompleteMe no los completarán automáticamente.