gvim(linux),r-plugin无法识别带注释的.R文件

时间:2012-07-30 15:08:06

标签: r vim vim-plugin

注意:重写原始问题以反映给出的正确解决方案。

vim(ubuntu 12.04 w / r-plugin)无法将.R或.r文件识别为R文件,并在文件中安装了带有注释的r-plugin,如下所示。

# comment
x <- 2
x

没有评论,一切正常。 我的〜/ .vim / filetype.vim读取:

augroup filetypedetect
  au! BufRead,BufNewFile *.r         setfiletype r
  au! BufRead,BufNewFile *.R         setfiletype r
  au! BufRead,BufNewFile *.Rnw       setf noweb
augroup END

1 个答案:

答案 0 :(得分:1)

多种文件类型似乎使用R扩展名。我在$VIMRUNTIME/filetype.vim中找到了这个:

" Rexx, Rebol or R
au BufNewFile,BufRead *.r,*.R           call s:FTr()

func! s:FTr()
let max = line("$") > 50 ? 50 : line("$")

for n in range(1, max)
    " Rebol is easy to recognize, check for that first
    if getline(n) =~? '\<REBOL\>'
    setf rebol
    return
    endif
endfor

for n in range(1, max)
    " R has # comments
    if getline(n) =~ '^\s*#'
    setf r
    return
    endif
    " Rexx has /* comments */
    if getline(n) =~ '^\s*/\*'
    setf rexx
    return
    endif
endfor

" Nothing recognized, assume Rexx
setf rexx
endfunc

因此,您需要在文件中为Vim提供注释以正确检测R。

如果您从不使用Rexx或Rebol文件,您可以覆盖检测:

au BufNewFile,BufRead *.r,*.R setf r