별명에 대한 특정 구문이 없지만 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
이 스 니펫 파일에서 트리거 incexit
는 트리거 의 "별칭"입니다 incstdlib
. 실제로 UltiSnips가 tabstop으로 이동 하면 이로 incexit
확장되어 호출됩니다 . 는 단지 vim 스크립트 함수를 실행 확장됩니다 그것의 최종 확장 된 형태로를 .incstdlib
expand(snip)
$1
expand(snip)
UltiSnips#ExpandSnippet
incstdlib
#include <stdlib.h>
또 다른 옵션은 UltiSnips 정규 표현식 지원을 대신 사용하는 것입니다.
snippet "inc(true|false|bool)" "#include <stdbool.h>" r
#include <stdbool.h> /* true, false */
endsnippet
여기에 세 가지 트리거가있는 것 inctrue
, incfalse
그리고 incbool
그 효과적으로 동일합니다. 유일한 단점은 YouCompleteMe와 같은 자동 완성 플러그인이 자동 완성 플러그인을 자동 완성하지 않는다는 것입니다.