Vim 如何在PHP文件中启用HTML代码段?

Vim 如何在PHP文件中启用HTML代码段?,vim,Vim,当我处理PHP文件时,有很多机会我会在其中嵌入一些HTML。问题是当我编辑一个名为foo.phpVim的文件时,它会自动将其文件类型设置为php,而html代码段在其中不起作用 我可以很快地将文件类型设置为html(:set ft=html),但是在两者之间进行更改对我来说似乎很难,如果我将php文件设置为html,我将失去php文件的高亮显示功能,如果文件类型为php,那么html的高亮显示功能将发挥作用,这真是太神奇了 我使用snipMate作为我的代码片段管理器。如何实现我想要的。对于PH

当我处理PHP文件时,有很多机会我会在其中嵌入一些HTML。问题是当我编辑一个名为
foo.php
Vim的文件时,它会自动将其文件类型设置为php,而html代码段在其中不起作用

我可以很快地将文件类型设置为html(
:set ft=html
),但是在两者之间进行更改对我来说似乎很难,如果我将php文件设置为html,我将失去php文件的高亮显示功能,如果文件类型为php,那么html的高亮显示功能将发挥作用,这真是太神奇了


我使用snipMate作为我的代码片段管理器。如何实现我想要的。

对于PHP和HTML条件来说很容易(如果使用snipMate),我还没有尝试过其他文件类型。您可以在~/.vimrc文件中进行设置:

autocmd filetype php set filetype=php.html

需要注意的是,当您将文件类型设置为
php.html
时,高亮显示的是php,代码段将从html导入。上面的配置与
set ft=html.php
不同(代码片段可以工作),因为高亮显示将对html启用,我们知道php美化html,但html不会美化php。同样,如果您执行
set filetype=php.css.html
操作,所有三种文件类型的代码片段都将被导入,但vim将根据php高亮显示。

您没有告诉我们您正在使用的代码片段插件。对于原始snipMate插件,创建一个包含以下内容的文件
~/.vim/ftplugin/php_snipMate.vim

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)

由于脚本名称和位置,它将自动为所有PHP文件提供源代码,并在所有现有PHP代码段之外导入html代码段。

是的,我使用的是snipMate。如果我要导入两个代码段文件(例如css.snippets),该怎么办?重复
ExtractSnipsFile()
调用
'css.snippets'
。请注意,这种方法首先为PHP提供文件类型设置,然后为HTML提供文件类型设置。如果您有任何冲突的映射/。。。在这里,您将看到重新定义错误或更高版本的HTML。dot文件类型是用于扩展的(例如
c.doxygen
),而不是用于引入替代文件。