说我有这样的.Rmd文件:
The total number of steps per day can also be calculated
using `tapply`.
```{r}
tapply(d$steps, INDEX=d$date, FUN=sum)[1:5]
```
What seems to be different is that, per default, `xtabs`
returns 0 for `NA` values and `tapply` returns `NA`.
Run Code Online (Sandbox Code Playgroud)
在我的终端窗口中,这看起来像这样:

如果不知怎的话,我可以通知vim这个R块实际上是R代码,它可以突出显示就像在实际.R文件中工作一样.
这可能吗?
Zac*_*ach 10
是的你可以.此代码取自此处.
把它放在~/.vim/r.vim文件中(如果这些文件中没有任何文件存在,请创建它们)
function! TextEnableCodeSnip(filetype,start,end,textSnipHl) abort
let ft=toupper(a:filetype)
let group='textGroup'.ft
if exists('b:current_syntax')
let s:current_syntax=b:current_syntax
" Remove current syntax definition, as some syntax files (e.g. cpp.vim)
" do nothing if b:current_syntax is defined.
unlet b:current_syntax
endif
execute 'syntax include @'.group.' syntax/'.a:filetype.'.vim'
try
execute 'syntax include @'.group.' after/syntax/'.a:filetype.'.vim'
catch
endtry
if exists('s:current_syntax')
let b:current_syntax=s:current_syntax
else
unlet b:current_syntax
endif
execute 'syntax region textSnip'.ft.'
\ matchgroup='.a:textSnipHl.'
\ start="'.a:start.'" end="'.a:end.'"
\ contains=@'.group
endfunction
Run Code Online (Sandbox Code Playgroud)
现在你可以使用了
:call TextEnableCodeSnip( 'r', '```{r}', '```', 'SpecialComment')
Run Code Online (Sandbox Code Playgroud)
只要有一个r.vim语法文件.
每次打开.Rmd文件时,您也可以自动调用此方法:
autocmd BufNewFile,BufRead *.Rmd :call TextEnableCodeSnip( 'r', '```{r}', '```', 'SpecialComment')
Run Code Online (Sandbox Code Playgroud)
如果要使用r后跟任意数量的字符突出显示,可以使用正则表达式:
:call TextEnableCodeSnip( 'r', '```{r.*}', '```', 'SpecialComment')
Run Code Online (Sandbox Code Playgroud)
或者在.vimrc中:
autocmd BufNewFile,BufRead *.Rmd :call TextEnableCodeSnip( 'r', '```{r.*}', '```', 'SpecialComment')
Run Code Online (Sandbox Code Playgroud)
该.*正则表达式表示任何重复字符.所以r.*意味着r跟随任意数量的字符.
因此,这将适用
```{r whatever you want to put here}`
Some r code here
```
Run Code Online (Sandbox Code Playgroud)