How to make a file with .pt extension, with xml syntax highlighting and vim's plugin snipmate load pt.snippets?

∥☆過路亽.° 提交于 2020-01-03 05:49:36

问题


I have the following in my .vimrc:

au BufNewFile,BufRead *.pt set filetype=xml

This is needed because although I'm editing a file with *.pt extension, it's indeed a valid xml file: setting the filetype like this I can have syntax highlighting.

I'm using vim's snipmate plugin, and tried to create pt.snippets to specific needs since these files are Zope Page Templates (ZPT with TAL).

Now, I have a problem: I don't want to create these snippets in xml.snippets, since they aren't really generic xml snippets, but my *.pt files are set to xml, so when I define my pt snippets they aren't loaded unless I run :set filetype=pt on my pt file on vim - but then I lose syntax highlighting.

I would like to be able to have a pt file, with xml syntax highlighting, to be able to load a pt.snippets file from snipmate. How can I do it?

(I would like to avoid putting my snippets in a generic snippet file, I would like it to be present only in pt.snippets to be easier to maintain.)


回答1:


Snipmate allows for dotted 'filetype' syntax, try:

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




回答2:


the syntax is notoriously finnicky for not wanting to support two concurrent filetypes (actually, someone asked this same question yesterday)

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

jinfield's answer is actually spot-on, but I have had the comma-syntax fail on some versions of vim




回答3:


How about?:

autocmd BufNewFile,BufRead *.pt setlocal filetype=pt
autocmd BufNewFile,BufRead *.pt setlocal syntax=xml


来源:https://stackoverflow.com/questions/2999980/how-to-make-a-file-with-pt-extension-with-xml-syntax-highlighting-and-vims-pl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!