Jeden fragment kodu yasnippet dla wielu trybów


13

Mam następujący fragment kodu:

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

i chcę, żeby był dostępny zarówno dla, jak latex-modei dla org-mode. Jak można to osiągnąć? Mogę dowiązać symbolicznie, ale staram się znaleźć mądrzejszy sposób.


1
Tryb c i tryb c ++ - oba dzielą fragmenty z trybu cc, możesz sprawdzić, jak to robią. Powinien być plik „.yas-rodzice”.
bmag

Odpowiedzi:


18

Dokumentacja Yasnippet wyjaśnia, że ​​musisz dołączyć .yas-parentsplik z trybami nadrzędnymi:

Bardzo przydatne jest, aby niektóre tryby dzieliły fragmenty między sobą. Aby to zrobić, wybierz podkatalog trybu i umieść .yas-parentszawierającą oddzieloną spacjami listę innych nazw trybów. Po ponownym załadowaniu tryby stają się rodzicami oryginalnego trybu.

.
|-- 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

Stąd, można na przykład umieścić fragment kodu w text-modekatalogu, a następnie, w latex-modei org-modekatalogów, zawierać .yas-parentsplik, który zawiera tekst text-mode.


1
Jeśli jednak dobrze rozumiem, możesz udostępniać tylko całe tryby, ale nie poszczególne fragmenty w kilku trybach?
Picaud Vincent
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.