Saya sering menulis dokumen dalam knitr menggunakan vim, yang berarti saya memiliki kode penurunan harga yang dicampur dengan kode R. Saya ingin memiliki pewarnaan sintaks R pada potongan R, tetapi penurunan harga atau tidak ada pewarnaan pada semua fragmen lainnya. Apakah ini bisa dilakukan? Bagaimana?
syntax-highlighting
Januari
sumber
sumber
s:syntax_include
dans:file_type_handler
: github.com/junegunn/dotfiles/blob/master/vimrcg:markdown_fenced_languages
dalamvimrc
mis Anda misalkan g: markdown_fenced_languages = ['r'] `. Saya berasumsi Anda menggunakan sintaks penurunan harga bawaan yang disediakan oleh Tim Pope. Lebih lanjut tentang bahasa berpagarJawaban:
Seperti yang dicatat Peter Rincker , pemformatan penurunan harga standar Vim sudah termasuk dukungan untuk menyoroti
r
kode dalam "blok kode berpagar", dan untuk mengaktifkannya, Anda hanya perlu mengatur variabel global dengan kode divimrc
:Namun, setelah melakukannya, Anda akan menemukan bahwa blok kode knitr Anda masih belum disorot.
Ini karena knitr menggunakan format informasi string Pandoc untuk membedakan kode R yang akan dijalankan dari blok kode biasa , dan penyorotan Markdown reguler Vim tidak mendukung 1 ini .
Cara termudah untuk memperbaikinya adalah dengan menambahkan item sintaksis secara manual untuk mencocokkan jenis blok kode ini dengan menambahkan baris berikut ke
~/.vim/after/syntax/markdown.vim
Anda juga dapat mempertimbangkan menginstal plugin Vim untuk menyoroti Pandoc, yang mungkin akan mendukung ini di luar kotak.
1: Ini tidak bisa dianggap sebagai masalah dalam file sintaks markdown Vim. The sintaks penurunan harga asli tidak termasuk dipagari blok kode sama sekali, dan CommonMark spesifikasi tidak menentukan bagaimana Info string harus diformat.
sumber