Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建扩展名为.pt、xml语法突出显示和vim';s插件snipmate加载pt.snippets?_Xml_Vim_Plugins_Zpt_Snipmate - Fatal编程技术网

如何创建扩展名为.pt、xml语法突出显示和vim';s插件snipmate加载pt.snippets?

如何创建扩展名为.pt、xml语法突出显示和vim';s插件snipmate加载pt.snippets?,xml,vim,plugins,zpt,snipmate,Xml,Vim,Plugins,Zpt,Snipmate,我的.vimrc中有以下内容: au BufNewFile,BufRead *.pt set filetype=xml 这是必需的,因为尽管我正在编辑一个扩展名为*.pt的文件,但它确实是一个有效的xml文件:像这样设置文件类型,我可以突出显示语法 我正在使用,并尝试创建pt.snippets以满足特定需求,因为这些文件是Zope页面模板(ZPT with TAL) 现在,我有一个问题:我不想在xml.snippets中创建这些代码段,因为它们不是真正的通用xml代码段,但是我的*.pt文件被

我的
.vimrc
中有以下内容:

au BufNewFile,BufRead *.pt set filetype=xml
这是必需的,因为尽管我正在编辑一个扩展名为
*.pt
的文件,但它确实是一个有效的xml文件:像这样设置文件类型,我可以突出显示语法

我正在使用,并尝试创建pt.snippets以满足特定需求,因为这些文件是Zope页面模板(ZPT with TAL)

现在,我有一个问题:我不想在xml.snippets中创建这些代码段,因为它们不是真正的通用xml代码段,但是我的
*.pt
文件被设置为xml,所以当我定义我的pt代码段时,除非我在vim上的pt文件上运行
:set filetype=pt
,否则不会加载这些代码段,但是我会丢失语法高亮显示

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

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

怎么样

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

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

Snipmate允许虚线“文件类型”语法,请尝试:

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


Snipmate允许虚线“文件类型”语法,请尝试:

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


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


jinfield的答案实际上是正确的,但是我在vim的一些版本中使用逗号语法失败了。众所周知,这种语法不支持两种并发文件类型(实际上,昨天有人问了同样的问题)


jinfield的答案实际上是正确的,但我在vim的某些版本中遇到了逗号语法失败的问题,“setlocal”不起作用,但执行“autocmd BufNewFile,BufRead*.pt set filetype=pt”可以。你能解释一下为什么吗?我不知道为什么它不适合你。上面的“autocmd”和一个非常简单的
pt.snippets似乎对我有用(Vim 7.2,snipMate 0.83)。如果您手动运行上述命令(仅“setlocal…”部分),它是否按预期工作?是的,它工作。。。但奇怪的是,我有一个名为“莫洛凯”的配色方案。当我运行第一个命令(filetype=pt)时,它会丢失colorscheme。当我运行“syntax=xml”时,它会恢复一个colorscheme,但我认为它得到的不是标准的vim xml语法。“setlocal”不起作用,但执行“autocmd BufNewFile,BufRead*.pt set filetype=pt”起作用。你能解释一下为什么吗?我不知道为什么它不适合你。上面的“autocmd”和一个非常简单的
pt.snippets似乎对我有用(Vim 7.2,snipMate 0.83)。如果您手动运行上述命令(仅“setlocal…”部分),它是否按预期工作?是的,它工作。。。但奇怪的是,我有一个名为“莫洛凯”的配色方案。当我运行第一个命令(filetype=pt)时,它会丢失colorscheme。当我运行“syntax=xml”时,它会恢复一个colorscheme,但我认为它得到的不是molokai,而是标准的vim xml syntax.sleepynate,谢谢您的回答。奇怪的是,金菲尔德的答案是有效的!!不知道为什么以前不是,我想我做错了什么。。。谢谢你的逗号语法建议。是的,没问题。当我想在CakePHP templates.sleepynate中同时使用php和html代码段时,我也遇到了同样的问题,谢谢您的回答。奇怪的是,金菲尔德的答案是有效的!!不知道为什么以前不是,我想我做错了什么。。。谢谢你的逗号语法建议。是的,没问题。当我想在CakePHP模板中同时使用php和html代码段时,我也遇到了同样的问题。