2012-09-18 39 views
3

當我處理PHP文件時,我將很多機會嵌入一些HTML。問題是,當我編輯名爲foo.php的文件時,Vim自動將其文件類型設置爲php,並且html代碼片段不會在其中工作。如何在PHP文件中啓用HTML代碼片段?

嗯,我可以快速設置文件類型爲html :set ft=html,但兩者之間的變化似乎很難給我,我失去了PHP文件的highlightation如果我將它設置爲HTML,其驚人的highlightation的HTML工作,如果在文件類型是PHP。

我使用snipMate作爲我的片段管理器。我怎樣才能達到我想要的。

回答

3

您沒有告訴我們您正在使用的代碼段插件。對於原snipMate插件,創建一個文件~/.vim/ftplugin/php_snipMate.vim具有以下內容:

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

因爲腳本的名稱和位置,它會自動加載所有PHP文件,除了所有導入的HTML代碼段現有的PHP代碼片段。

+0

是的,我正在使用** snipMate **。 –

+0

如果我想導入兩個片段文件(例如css。 snippets)? –

+1

用''css.snippets''重複'ExtractSnipsFile()'調用。 –

2

PHP和HTML條件很容易(如果您使用snipMate),我還沒有嘗試過其他文件類型。你可以在你設置這個〜/ .vimrc文件:

autocmd filetype php set filetype=php.html 

點要注意的是,當你的文件類型設置爲php.html,該highlightation是PHP和片段會將HTML進口。上述配置將不會與set ft=html.php(以及代碼段將起作用)相同,因爲會爲html啓用高亮顯示,而且我們知道php會優化html,但是html不會優化php。以相同的方式,如果你這樣做set filetype=php.css.html所有三個文件類型的片段將被導入,但vim會根據PHP高亮顯示。

+0

請注意,此方法將首先爲_PHP_提供文件類型設置,然後爲_HTML_提供文件類型設置。如果你有任何衝突的映射/ ...在那裏,你會得到重新定義錯誤或後來的HTML版本。 dot-filetypes的意思是擴展名(例如'c.doxygen',不是用於替代選項。 –

相關問題