如何制作一个带有 .pt 扩展名的文件,带有 xml 语法突出显示和 vim 插件 snipmate 加载 pt.snippets?

发布于 2024-09-04 23:54:04 字数 708 浏览 6 评论 0原文

我的 .vimrc 中有以下内容:

au BufNewFile,BufRead *.pt set filetype=xml

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

我正在使用 vim 的 snipmate 插件,并尝试创建 pt.由于这些文件是 Zope 页面模板(带有 TAL 的 ZPT),因此可以根据特定需求编写片段。

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

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

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

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.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

记忆之渊 2024-09-11 23:54:04

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

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

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

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

眼睛会笑 2024-09-11 23:54:04

Snipmate 允许使用点“文件类型”语法,尝试:

au BufNewFile,BufRead *.pt 设置 filetype=xml.pt

Snipmate allows for dotted 'filetype' syntax, try:

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

墟烟 2024-09-11 23:54:04

怎么样?:

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

How about?:

autocmd BufNewFile,BufRead *.pt setlocal filetype=pt
autocmd BufNewFile,BufRead *.pt setlocal syntax=xml
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文