UltiSnips regex macthing

Oct 16 2020

Voglio la possibilità di trasformare un'equazione in linea in latex in un'equazione di visualizzazione.

Quindi voglio $something$diventare

$$ something $$

Il mio tentativo è stato questo:

snippet "$(.+)$" "whatever" r
$$ \1 $$
$1
endsnippet

La mia comprensione è che (.+)corrisponderebbe a qualsiasi carattere 1 o più volte (catturato in un gruppo) e \1stamperebbe la corrispondenza nel gruppo.

Ho anche provato a usare l'interpolazione Python !p snip.rv = match.group(1)senza successo.

Entrambi i tentativi portano solo a una scheda inserita. Qualche idea?

Risposte

1 RicardoKullock Oct 18 2020 at 01:40

A causa del commento di Jake Grossman, alla fine mi sono reso conto che il $trigger regex dovrebbe essere evitato: ( Dovevo anche usare l'interpolazione Python)

snippet "\$(.+)\$" "whatever" r $$
`!p snip.rv = match.group(1)`
$$ $0
endsnippet

Il grilletto destro dopo snippetcorrisponderà nulla tra $e catturare in un gruppo (con la ())

Nell'interpolazione Python, snip.rvsta per "return value" e match.group(1)stampa il primo gruppo nella regex (l'unico in questo caso)