Diğer adlar için belirli bir sözdizimi olmamasına rağmen, aşağıdakileri kullanarak aynı etkiyi elde edebilirsiniz 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
Bu parçacıklar dosyasında tetikleyici incexit
, tetikleyicinin "takma adıdır" incstdlib
. Gerçekte incexit
, UltiSnips sekmeye taşındığında buna genişler incstdlib
ve expand(snip)
çağrılır $1
. expand(snip)
Sadece VimScript işlevini yürütür UltiSnips#ExpandSnippet
genişleyecektir incstdlib
's nihai genişletilmiş forma #include <stdlib.h>
.
Başka bir seçenek, bunun yerine UltiSnips normal ifade desteğini kullanmaktır:
snippet "inc(true|false|bool)" "#include <stdbool.h>" r
#include <stdbool.h> /* true, false */
endsnippet
Burada üç tetikleyici olur inctrue
, incfalse
ve incbool
bu da geri aynıdır. Tek dezavantajı, YouCompleteMe gibi otomatik tamamlama eklentilerinin bunları otomatik tamamlamamasıdır.