LaTeX Suite 自动完成功能不适用于 Rnw 文件

LaTeX Suite 自动完成功能不适用于 Rnw 文件

我一直是 Vim 的忠实粉丝,因为它的 Vim-latex 套件非常出色,提供了极其有用的键绑定和自动完成功能。然后我安装vim-r-plugin并打开了一个.Rnw Sweave 文件。虽然语法高亮和其他 R 相关功能(如快捷键)可以正常工作,但 LaTeX 快捷键不再起作用。例如,如果我SSE再输入它,就会出现\section{}。但如果我打开一个 .tex 文件,这些快捷键就可以正常工作。我在 Windows 7 中使用 gVim 7.3。任何建议都将不胜感激。

答案1

您需要将.Rnw 文件与 tex 关联。

最直接的方法是打开 .Rnw 文件并发出以下命令:

:set filetype=tex

完成上述操作后,您习惯的 vim-latex 行为就会恢复。要以良好的方式将其纳入您的 vimrc 中,请按以下步骤操作:这里在 stackoverflow 问题中描述。 以机智:

autocmd BufRead,BufNewFile *.Rnw set filetype=tex

插件与文件类型相关联,据我所知,一个文件在特定时间只能有一种文件类型(否则您可能会遇到各种插件功能之间发生冲突,UltiSnips 将不知道提供哪些片段等)。

当然,您可以手动完成此操作,但如果您想避免set filetype=每次要在与文件类型相关的插件之间切换时都必须这样做,则可以在 .vimrc 中使用以下脚本:

"------------------------------------
" Toggle filetypes R, Rnw and Tex 
"------------------------------------
let b:myFileType=-1   
let g:myFileTypeList=["tex","rnoweb","r"]
function! ToggleFileType()
  let b:myFileType=b:myFileType+1
  if b:myFileType>=len(g:myFileTypeList) | let b:myFileType=0 | endif
  execute "set filetype=".get(g:myFileTypeList, b:myFileType)
  echo "Filetype set to:" g:myFileTypeList[b:myFileType]
endfunction
nmap <silent> <F12> :call ToggleFileType()<CR>

当然,您可以设置自己的键盘快捷键,更改<F12>为适合您的快捷键。

相关内容