Utworzyłem fragment kodu, który chcę dać innym wyzwalaczom, więc zamiast powiedzieć, trigger
że chcę go również uruchomić myothertrigger
:
snippet trigger "just an example"
my text ...
endsnippet
Czy istnieje prosty sposób na zrobienie tego zamiast kopiowania fragmentu?
Edycja: Żeby było jasne, używam UltiSnips , ale jeśli jest lepsza wtyczka, mógłbym to sprawdzić.
plugin-ultisnips
ponownie
źródło
źródło
plugin-ultisnips
, więc zakładam, że OP używa ultisnips.neosnippet
wtyczkę Shougo , jej składnia zawieraalias
słowo kluczowe do tego właśnie celu.Odpowiedzi:
Obecnie nie ma takiej możliwości w UltiSnips. Jest jednak otwarta prośba o funkcję na Github . Osobiście chciałbym również mieć funkcję aliasu dla wyzwalaczy, jak wskazano tutaj .
Miejmy nadzieję, że SirVer (opiekun UltiSnips) też tak pomyśli i uwzględni to w przyszłości :)
źródło
Chociaż nie ma określonej składni aliasów, ten sam efekt można osiągnąć, używając
post_jump
:W tym pliku urywków wyzwalacz
incexit
jest „aliasem” wyzwalaczaincstdlib
. W rzeczywistościincexit
rozwija sięincstdlib
iexpand(snip)
jest wywoływany, gdy UltiSnips przechodzi do tabstopu$1
. Poexpand(snip)
prostu wykonuje funkcję VimScript,UltiSnips#ExpandSnippet
która rozwinie sięincstdlib
w swoją ostateczną rozszerzoną formę#include <stdlib.h>
.Inną opcją jest użycie zamiast tego obsługi wyrażeń regularnych UltiSnips:
Tutaj masz trzy spusty
inctrue
,incfalse
iincbool
że są tak samo skuteczne. Jedyną wadą jest to, że wtyczki autouzupełniania, takie jak YouCompleteMe, nie będą ich automatycznie uzupełniać.źródło