Ich schreibe oft Dokumente in knitr mit vim, was bedeutet, dass ich Markdown-Code mit R-Code vermischt habe. Ich hätte gerne R-Syntax-Farben für R-Stücke, aber Markierungen oder keine Farben für alle anderen Fragmente. Ist das machbar? Wie?
syntax-highlighting
Januar
quelle
quelle
s:syntax_include
unds:file_type_handler
: github.com/junegunn/dotfiles/blob/master/vimrcg:markdown_fenced_languages
in Ihremvimrc
zB lassen g: markdown_fenced_languages = [ ‚r‘] `. Ich gehe davon aus, dass Sie die von Tim Pope bereitgestellte Standard-Markdown-Syntax verwenden . Mehr zu umzäunten SprachenAntworten:
Wie Peter Rincker festhält , unterstützt die Standardformatierung von Vim das Hervorheben von
r
Code in einem "umzäunten Codeblock". Um dies zu aktivieren, müssen Sie lediglich eine globale Variable mit Code in Ihremvimrc
:Danach werden Sie jedoch feststellen, dass Ihre Knitr-Codeblöcke immer noch nicht hervorgehoben sind.
Dies liegt daran, dass Knitr die Formatierung von Info-Strings von Pandoc verwendet, um R-Code, der aus einem regulären Codeblock ausgeführt werden soll , zu unterscheiden , und Vims reguläre Markdown-Hervorhebung unterstützt diese 1 nicht .
Die einfachste Möglichkeit, dies zu beheben, besteht darin, manuell ein zusätzliches Syntaxelement hinzuzufügen, das diesem Codeblocktyp entspricht, indem die folgende Zeile hinzugefügt wird
~/.vim/after/syntax/markdown.vim
Sie können auch ein Vim-Plugin für Pandoc-Hervorhebungen installieren, das dies vermutlich sofort unterstützt.
1: Dies kann in Vims Abschriften-Syntaxdatei nicht wirklich als Problem angesehen werden. Die ursprüngliche Markdown-Syntax enthält überhaupt keine umzäunten Codeblöcke, und die CommonMark-Spezifikation definiert nicht, wie Info-Strings formatiert werden sollen.
quelle