2

tex当我编写 beamer tex 幻灯片演示文稿时,我已经对要在 beamer 文档上默认操作的文件类型进行了一些修改。

当我创建一个投影仪文档时,它有一个.tex文件扩展名和前几行类似以下的行:

\documentclass[...]{beamer}

为简单起见,我们可以说任何带有.tex扩展名的文件和beamer前 5 行中任何位置的文本都应默认为 filetype beamer

  • 如何自动将文件类型设置为beamer同时使用文件扩展名和文件开头几行的信息?

正如经常发生的那样,提出问题的过程导致我:h new-filetype-scripts,但这仍然需要相当多的破译。任何提示都将受到欢迎。

4

2 回答 2

2

根据您指出的帮助文章,您需要 scripts.vim在 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首先尝试该方法,如果您无法以这种方式工作,请考虑第二种方法。

于 2011-08-05T07:34:27.543 回答
0

我仍在试验,但初步解决方案似乎是添加一个使用以下命令调用beamer.vim的文件:~/.vim/ftdetect

au BufRead,BufNewfile *.tex if getline(1) =~ 'beamer' | set filetype=beamer.tex | endif  

请注意,我已经根据上面的规范稍微简化了命令,并且文件类型beamer.tex包含了 tex 功能和我的投影仪自定义。

于 2011-08-05T09:31:55.280 回答