问题
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