Próbuję napisać yasnippet, aby wstawić fragmenty kodu do pliku R Markdown. Używam trybu wielomodowego, aby mieć wiele głównych trybów (markdown, ESS [S]) w jednym pliku. Oto mój fragment:
# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`
Gdy próbuję wstawić fragment kodu do pliku .Rmd w trybie Markdown, pojawia się następujący błąd:
Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)
Fragment pojawia się, a mój kursor znajduje się we właściwym miejscu (tuż przed drugim nawiasiem klamrowym):
```{r }
```
Po naciśnięciu klawisza pojawia się:
yas-next-field: Wrong type argument: overlayp, nil
Zgaduję, że wpadam w interakcję z trybem wielomodowym: po wstawieniu fragmentu znajduję się w trybie Markdown, ale następnie tryb wielomodowy przekształca zawartość fragmentu kodu w tryb ESS [S]. Wygląda na to, że w końcu pojawi się polecenie wstawienia nowego fragmentu w trybie wielomodowym, ale czy w międzyczasie jest jakiś sposób, aby ten fragment kodu zadziałał?
M-x tws-insert-r-chunk
. Prawdopodobnie będziesz chciał powiązać to polecenie ze skrótem klawiaturowym - tutaj jest wiele pytań na temat ustawiania skrótów klawiszowych.