Un frammento di yasnippet per più modalità


13

Ho il seguente frammento:

# -*- mode: snippet -*-
# contributor: Song Qiang <tsiangsung@gmail.com>
# key: m
# group: Math
# name: Inline math \( ... \)
# --
\\($1\\)$0

e voglio che sia disponibile per entrambi latex-modee org-mode. Come si può ottenere questo? Potrei un collegamento simbolico, ma sto cercando di trovare un modo più intelligente.


1
c-mode e c ++ - mode entrambi condividono i frammenti di cc-mode, puoi controllare come lo fanno. Dovrebbe esserci un file ".yas-parent".
bmag,

Risposte:


18

La documentazione di Yasnippet spiega che dovrai includere un .yas-parentsfile con le modalità padre:

È molto utile che alcune modalità condividano frammenti tra di loro. Per fare ciò, scegliere una sottodirectory mode e posizionare un .yas-parentscontenente un elenco separato da spazi di altri nomi di modalità. Quando ricarichi quelle modalità, diventi genitori della modalità originale.

.
|-- c-mode
|   |-- .yas-parents    # contains "cc-mode text-mode"
|   `-- printf
|-- cc-mode
|   |-- for
|   `-- while
|-- java-mode
|   |-- .yas-parents    # contains "cc-mode text-mode"
|   `-- println
`-- text-mode
    |-- email
    `-- time

Pertanto, ad esempio, è possibile inserire lo snippet in una text-modedirectory e quindi, nelle directory latex-modee org-mode, includere un .yas-parentsfile che includa il testo text-mode.


1
Tuttavia, se ho capito bene, puoi condividere solo intere modalità, ma non singoli frammenti in più modalità?
Picaud Vincent,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.