Często piszę dokumenty w knitr przy użyciu vima, co oznacza, że mam kod zniżkowy zmieszany z kodem R. Chciałbym mieć kolorowanie składni R na fragmentach R, ale zaznaczanie lub brak kolorowania na wszystkich innych fragmentach. Czy to jest wykonalne? W jaki sposób?
syntax-highlighting
styczeń
źródło
źródło
s:syntax_include
is:file_type_handler
: github.com/junegunn/dotfiles/blob/master/vimrcg:markdown_fenced_languages
wvimrc
np Niech G: markdown_fenced_languages = [ „r”] `. Zakładam, że używasz domyślnej składni Markdown dostarczonej przez Tima Pope'a. Więcej o językach ogrodzonychOdpowiedzi:
Jak zauważa Peter Rincker , standardowe formatowanie przeceny Vima zawiera już obsługę podświetlania
r
kodu w „ogrodzonym bloku kodu”, a aby go włączyć, wystarczy ustawić zmienną globalną z kodem wvimrc
:Jednak po wykonaniu tej czynności okaże się, że bloki kodu knitr nadal nie są podświetlone.
Dzieje się tak, ponieważ knitr używa formatowania ciągów informacji przez Pandoc w celu odróżnienia kodu R, który ma być uruchamiany ze zwykłego bloku kodu , a regularne podświetlanie Markdown przez Vima nie obsługuje tego 1 .
Najprostszym sposobem na rozwiązanie tego problemu jest ręczne dodanie dodatkowego elementu składni w celu dopasowania do tego typu bloku kodu poprzez dodanie następującego wiersza do
~/.vim/after/syntax/markdown.vim
Możesz również rozważyć zainstalowanie wtyczki Vim do podświetlania Pandoc, która prawdopodobnie obsługiwałaby to po wyjęciu z pudełka.
1: Nie można tego tak naprawdę traktować jako problemu w pliku składni obniżek Vima. Oryginalny składni Markdown nie obejmuje ogrodzony bloki kodu w ogóle, a CommonMark specyfikacja nie definiuje jak struny informacji powinien być sformatowany.
źródło