我的.vimrc
中有以下内容:
au BufNewFile,BufRead *.pt set filetype=xml
这是必要的,因为虽然我正在编辑一个扩展名为*.pt
的文件,但它确实是一个有效的xml文件:设置这样的文件类型我可以使用语法高亮显示。
我正在使用vim's snipmate plugin,并尝试根据特定需求创建pt.snippets,因为这些文件是Zope页面模板(带TAL的ZPT)。
现在,我遇到了一个问题:我不想在xml.snippets中创建这些片段,因为它们不是通用的xml片段,但我的*.pt
文件设置为xml,所以当我定义我的pt片段,除非我在vim上的pt文件上运行:set filetype=pt
,否则它们不会被加载 - 但是我失去了语法高亮。
我希望能够使用xml语法高亮显示pt文件,以便能够从snipmate加载pt.snippets文件。我该怎么办?
(我希望避免将我的代码段放在通用代码段文件中,我希望它只存在于pt.snippets中以便于维护。)
答案 0 :(得分:3)
由于不想支持两个并发文件类型(事实上,昨天有人问过同样的问题),语法非常出类拔萃。
au BufRead *.pt set filetype=xml.pt
au BufNewFile *.pt set filetype=xml.pt
jinfield的答案实际上是现场的,但我在某些版本的vim上有逗号语法失败
答案 1 :(得分:2)
Snipmate允许使用点'filetype'语法,尝试:
au BufNewFile,BufRead * .pt set filetype = xml.pt
答案 2 :(得分:1)
怎么样?:
autocmd BufNewFile,BufRead *.pt setlocal filetype=pt
autocmd BufNewFile,BufRead *.pt setlocal syntax=xml