我的R脚本通常用*.R作为后缀,用VIM编辑R文件时有时会无法正确检测出文件类型来,从而无法进行正确地颜色高亮。另外,默认的配置用来编辑R脚本也不够用,翻了翻资料,作了一些简单的配置。
在我的.vimrc文件里加了如下三行配置:
imap <c-r> <space><-<space>
autocmd FileType r set fdm=indent
au BufNewFile,BufRead *.R set ft=r
说明:
1、第一行是在“输入模式”下作了一个映射,把ctrl+b映射为” <- “这几个字符(<space>指代空格符),因为R里推荐的赋值操作符是”<-”,打起来很麻烦,虽然我常用的是”=”,但有时还是用得上的。
2、第二行设定当文件类型是R时,把fdm这个option设置为indent,这样可以实现代码折叠,即按z+c就可以把大括号中间的部分折叠起来,编辑多函数的文件时非常方便。用:help可以查看到autocmd这个命令的定义为:autocmd [group] {event} {pattern} [nested] {cmd},即在{event}事件触发时,如果文件名符合{pattern}模式,则执行{cmd}的命令。具体在这里就是当FileType r这个事件被触发时,执行set fdm=indent命令。
3、第三行的au是autocmd的缩写,功能完全一样。这里的定义是指:当BufNewFile,BufRead事件被触发时,如果文件名为*.R,则set ft=r,自动设定好FileType,这就实现了根据文件名后缀自动检测文件类型。其它文件后缀与文件类型的绑定也可以通过这种方法来实现。
4、说到文件类型的检测,还得补充几句,通常你需要默认打开文件类型检测,即设定filetype plugin indent on,可以在vim里输入:filetype查看是否已经开启。除了上述提到的在.vimrc中设定之外,还有两种方法可以设定文件类型,一种是在文件的开头或结尾加上” vim: ft=c “的注释,注意两边的空格,还有不同类型的文件有不同的注释方式;另一种方法是打开文件后直接通过:set ft=r来设定。
简简单单的三行配置就使得自己的工作环境大大改善,很强大吧。
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.