1

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

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
4

1 回答 1

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
于 2012-07-30T16:16:04.277 回答