Ich versuche, ein Yasnippet zu schreiben, um Codeblöcke in eine R-Markdown-Datei einzufügen. Ich verwende Polymode, um mehrere Hauptmodi (Markdown, ESS [S]) in einer einzigen Datei zu haben. Das ist mein Ausschnitt:
# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`
Wenn ich versuche, das Snippet im Markdown-Modus in eine .Rmd-Datei einzufügen, wird folgende Fehlermeldung angezeigt:
Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)
Das Snippet wird angezeigt und mein Cursor befindet sich an der richtigen Stelle (kurz vor der zweiten geschweiften Klammer):
```{r }
```
Wenn ich auf die Tabulatortaste drücke, wird Folgendes angezeigt:
yas-next-field: Wrong type argument: overlayp, nil
Ich vermute, dass ich auf eine Interaktion mit Polymode stoße: Ich bin im Markdown-Modus, wenn ich das Snippet einfüge, aber dann konvertiert Polymode den Inhalt des Codeblocks in den ESS [S] -Modus. Es sieht so aus, als würde es irgendwann einen Befehl zum Einfügen eines neuen Blocks in Polymode geben, aber gibt es in der Zwischenzeit eine Möglichkeit, dieses Snippet zum Laufen zu bringen?
M-x tws-insert-r-chunk
. Wahrscheinlich möchten Sie diesen Befehl an eine Tastenkombination binden - hier gibt es viele Fragen zum Festlegen von Tastenkombinationen.