当我编写beamer tex幻灯片演示文稿时,我对tex
文件类型进行了一些修改,我希望在默认情况下对beamer文档进行操作。
当我创建一个beamer文档时,它有一个.tex
文件扩展名和一行,在前几行中如下所示:
documentclass[...]{beamer}
为简单起见,我们可以说任何扩展名为.tex
且文本为beamer
的文件在前5行中的任何位置都应该默认为文件类型beamer
。
- 我如何使用文件扩展名和文件的初始几行信息自动将文件类型设置为
beamer
?
正如经常发生的那样,形成问题的过程使我找到了:h new-filetype-scripts
,但这仍然需要相当多的破译。如有任何建议,欢迎。
根据您指出的帮助文章,您需要创建一个vim运行时目录中的scripts.vim
文件,其内容如下所示:
if did_filetype()
finish
endif
if expand('%:e') == 'tex'
for n in range(1, 5)
if getline(n) =~ 'beamer'
setfiletype beamer
break
endif
endfor
endif
有趣的是,这对我不起作用。我设法做到了这一点,把它放在ftplugin/beamer.vim
和改变它一点如下:
for n in range(1, 5)
if getline(n) =~ 'beamer'
set filetype=beamer
break
endif
endfor
当tex
文件类型被加载时,特定于激光的东西也会被获取。我建议先尝试scripts.vim
方法,如果你不能让它以这种方式工作,考虑第二种方法。
我仍在试验,但初步的解决方案似乎是添加一个名为beamer.vim
的文件到~/.vim/ftdetect
,使用以下命令:
au BufRead,BufNewfile *.tex if getline(1) =~ 'beamer' | set filetype=beamer.tex | endif
注意,我已经根据上面的规范稍微简化了命令,并且文件类型beamer.tex
包含了tex特性和我的beamer定制。