Один фрагмент ясниппета для нескольких режимов

13

У меня есть следующий фрагмент:

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

и я хочу, чтобы он был доступен как для, так latex-modeи для org-mode. Как этого достичь? Я мог бы символическую ссылку, но я пытаюсь найти более разумный путь.

Дрор Атария
источник
1
c-mode и c ++ - mode оба обмениваются фрагментами из cc-mode, вы можете проверить, как они это делают. Там должен быть файл ".yas-parent".
bmag
Вы можете попробовать yankpad, стоит попробовать! github.com/Kungsgeten/yankpad youtube.com/watch?v=xkkyE7d0Bpc&feature=youtu.be
ragloo,

Ответы:

18

Документация Yasnippet объясняет, что вам нужно будет включить .yas-parentsфайл с родительскими режимами:

Очень полезно, чтобы определенные режимы обменивались фрагментами между собой. Для этого выберите подкаталог mode и поместите в .yas-parentsнего список разделенных пробелами имен других режимов. При перезагрузке эти режимы становятся родителями исходного режима.

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

Таким образом, можно, например, положить фрагмент в text-modeкаталог, а затем, в latex-modeи org-modeкаталоги, включают в себя .yas-parentsфайл , который включает текст text-mode.

Дэн
источник
1
Однако, если я хорошо понял, вы можете поделиться только целыми режимами, но не отдельными фрагментами в нескольких режимах?
Пикауд Винсент