J'écris souvent des documents dans knitr en utilisant vim, ce qui signifie que j'ai du code de démarque mélangé avec du code R. Je voudrais avoir la coloration de la syntaxe R sur les morceaux R, mais la démarque ou pas de coloration sur tous les autres fragments. Est-ce faisable? Comment?
syntax-highlighting
janvier
la source
la source
s:syntax_include
ets:file_type_handler
: github.com/junegunn/dotfiles/blob/master/vimrcg:markdown_fenced_languages
parvimrc
exemple let g: markdown_fenced_languages = ['r'] `. Je suppose que vous utilisez la syntaxe de démarque par défaut fournie par Tim Pope. Plus d'informations sur les langues clôturéesRéponses:
Comme le note Peter Rincker , le formatage de démarque standard de Vim inclut déjà la prise en charge de la mise en évidence du
r
code dans un "bloc de code clôturé", et pour l'activer, il vous suffit de définir une variable globale avec du code dans votrevimrc
:Cependant, après cela, vous constaterez que vos blocs de code knitr ne sont toujours pas mis en évidence.
En effet, knitr utilise le formatage de chaînes d'informations de Pandoc afin de différencier le code R qui doit être exécuté à partir d'un bloc de code normal , et la mise en évidence Markdown régulière de Vim ne prend pas en charge ce 1 .
La façon la plus simple de résoudre ce problème consiste à ajouter manuellement un élément de syntaxe supplémentaire pour correspondre à ce type de bloc de code en ajoutant la ligne suivante à
~/.vim/after/syntax/markdown.vim
Vous pouvez également envisager d'installer un plug-in Vim pour la mise en évidence de Pandoc, qui prendrait vraisemblablement en charge cette fonctionnalité prête à l'emploi.
1: Cela ne peut pas vraiment être considéré comme un problème dans le fichier de syntaxe de démarque de Vim. La syntaxe Markdown d'origine n'inclut pas du tout les blocs de code clôturés, et la spécification CommonMark ne définit pas comment les chaînes d'informations doivent être formatées.
la source