A menudo escribo documentos en knitr usando vim, lo que significa que tengo un código de descuento mezclado con el código R. Me gustaría tener coloración de sintaxis R en fragmentos R, pero rebaja o no coloración en todos los demás fragmentos. ¿Es esto factible? ¿Cómo?
syntax-highlighting
enero
fuente
fuente
s:syntax_include
ys:file_type_handler
: github.com/junegunn/dotfiles/blob/master/vimrcg:markdown_fenced_languages
en,vimrc
por ejemplo, let g: markdown_fenced_languages = ['r'] `. Supongo que está utilizando la sintaxis de descuento predeterminada proporcionada por Tim Pope. Más sobre los idiomas valladosRespuestas:
Como señala Peter Rincker , el formato de rebaja estándar de Vim ya incluye soporte para resaltar
r
código dentro de un "bloque de código vallado", y para habilitarlo, solo tiene que establecer una variable global con código en suvimrc
:Sin embargo, después de hacerlo, encontrará que sus bloques de código de knitr todavía no están resaltados.
Esto se debe a que knitr utiliza el formato de cadenas de información de Pandoc para diferenciar el código R que se ejecutará desde un bloque de código normal , y el resaltado de Markdown regular de Vim no admite esto 1 .
La forma más fácil de solucionar esto es agregar manualmente un elemento de sintaxis adicional para que coincida con este tipo de bloque de código agregando la siguiente línea a
~/.vim/after/syntax/markdown.vim
También podría considerar instalar un complemento Vim para resaltar Pandoc, que presumiblemente lo admitiría de inmediato.
1: Esto realmente no puede considerarse un problema en el archivo de sintaxis de rebajas de Vim. La sintaxis original de Markdown no incluye bloques de código cercados, y la especificación CommonMark no define cómo se deben formatear las cadenas de información.
fuente