Um trecho de yasnippet para vários modos

13

Eu tenho o seguinte trecho:

# -*- mode: snippet -*-
# contributor: Song Qiang <[email protected]>
# key: m
# group: Math
# name: Inline math \( ... \)
# --
\\($1\\)$0

e eu quero que ele esteja disponível para ambos latex-modee org-mode. Como isso pode ser alcançado? Eu poderia ligar novamente, mas estou tentando encontrar uma maneira mais inteligente.

Dror Atariah
fonte
1
modo c e modo c ++ - ambos compartilham trechos do modo cc, você pode verificar como eles fazem isso. Deve haver um arquivo ".yas-parents".
BMAG
Você pode tentar o yankpad, vale a pena tentar! github.com/Kungsgeten/yankpad youtube.com/watch?v=xkkyE7d0Bpc&feature=youtu.be
ragloo

Respostas:

18

A documentação do Yasnippet explica que você precisará incluir um .yas-parentsarquivo com os modos pai:

É muito útil ter certos modos de compartilhar trechos entre si. Para fazer isso, escolha um subdiretório de modo e coloque um .yas-parentscontendo uma lista separada por espaços em branco de outros nomes de modo. Quando você recarrega esses modos, tornam-se pais do modo original.

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

Portanto, você pode, por exemplo, colocar seu trecho em um text-modediretório e, nos diretórios latex-modee org-mode, incluir um .yas-parentsarquivo que inclua o texto text-mode.

Dan
fonte
1
No entanto, se eu entendi bem, você só pode compartilhar modos inteiros , mas não trechos individuais em vários modos?
Picaud Vincent