如何在 PHP 文件中启用 HTML 片段?

San*_*mar 4 vim

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

好吧,我可以快速将文件类型设置为 html ( :set ft=html),但是在两个之间切换对我来说似乎很难,如果我将其设置为 html,我将丢失 php 文件的突出显示,如果文件类型是 php,那么 html 的突出显示工作令人惊讶。

我使用 snipMate 作为我的片段管理器。我怎样才能达到我想要的。

San*_*mar 5

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

autocmd filetype php set filetype=php.html
Run Code Online (Sandbox Code Playgroud)

需要注意的是,当您将文件类型设置为 时php.html,突出显示是针对 PHP 的,并且片段将从 html 导入。上面的配置将与set ft=html.php(以及片段将起作用)不同,因为将为 html 启用突出显示,并且我们知道 php 美化 html 但 html 不美化 php。以同样的方式,如果您执行set filetype=php.css.html所有三种文件类型的片段将被导入,但 vim 将根据 PHP 突出显示。


Ing*_*kat 3

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

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
Run Code Online (Sandbox Code Playgroud)

由于脚本名称和位置的原因,它将自动为所有 PHP 文件提供来源,并除了所有现有 PHP 代码片段之外还导入 html 代码片段。