0

我有以下内容.vimrc

au BufNewFile,BufRead *.pt set filetype=xml

这是必需的,因为虽然我正在编辑一个带有*.pt扩展名的文件,但它确实是一个有效的 xml 文件:像这样设置文件类型我可以突出显示语法。

我正在使用vim 的 snipmate 插件,并尝试根据特定需求创建 pt.snippets,因为这些文件是 Zope 页面模板(ZPT with TAL)。

现在,我有一个问题:我不想在 xml.snippets 中创建这些片段,因为它们不是真正的通用 xml 片段,但我的*.pt文件设置为 xml,所以当我定义我的 pt 片段时,它们不是加载,除非我:set filetype=pt在 vim 上运行我的 pt 文件 - 但随后我失去了语法突出显示。

我希望能够有一个带有 xml 语法突出显示的 pt 文件,以便能够从 snipmate 加载一个 pt.snippets 文件。我该怎么做?

(我想避免将我的片段放在通用片段文件中,我希望它只存在于 pt.snippets 中以便于维护。)

4

3 回答 3

3

该语法因不想支持两种并发文件类型而臭名昭著(实际上,昨天有人问了同样的问题)

au BufRead *.pt set filetype=xml.pt
au BufNewFile *.pt set filetype=xml.pt

jinfield 的答案实际上是正确的,但是我在某些版本的 vim 上的逗号语法失败了

于 2010-06-12T14:03:52.053 回答
2

Snipmate 允许使用 dotted 'filetype' 语法,请尝试:

au BufNewFile,BufRead *.pt set filetype=xml.pt

于 2010-06-09T15:57:12.540 回答
1

怎么样?:

autocmd BufNewFile,BufRead *.pt setlocal filetype=pt
autocmd BufNewFile,BufRead *.pt setlocal syntax=xml
于 2010-06-08T21:24:46.970 回答