How to force vim to syntax-highlight a file as html?
HtmlSyntax HighlightingVimHtml Problem Overview
How do I set vim's syntax highlighting to treat a file extension as an html file?
I'm using ez template, so the file's extension is .ezt
. But a lot of it is normal html code.
Html Solutions
Solution 1 - Html
:set syntax=html
Solution 2 - Html
You can also put this into your .vimrc:
au BufReadPost *.ezt set syntax=html
Solution 3 - Html
Take a look at this Vim wikia topic. Some useful tips:
-
As other answers have mentioned, you can use the vim set command to set syntax.
:set syntax=<type>
where<type>
is something likeperl
,html
,php
, etc. -
There is another mechanism that can be used to control syntax highlighting called
filetype
, orft
for short. Similar to syntax, you give it a type like this::set filetype=html
. Other filetypes areperl
,php
, etc. -
Sometimes vim "forgets" what syntax to use, especially if you're mixing things like php and html together. Use the keyboard shortcut Ctrl+L (
<C-L>
) to get vim to refresh the highlighting.
Solution 4 - Html
To make it automatic, add this line to your ~/.vimrc
:
autocmd BufNewFile,BufRead *.ezt set filetype=html
If you want to just do it for the current file, then type:
:set filetype=html
You could also substitute syntax
instead of filetype
, but filetype
affects more things than syntax
(including syntax highlighting, indenting rules, and plugins), so generally you should use filetype
unless you only want to affect syntax
.
Solution 5 - Html
Note that :set syntax=xml
highlights properly but seems to fail when one is attempting to autoindent the file (i.e. running gg=G
).
When I switched to :set filetype=xml
, the highlighting worked properly and the file indented properly.
Solution 6 - Html
In a .php file (or a html file), you could use a Vim Modeline to force certain commands or settings:
1 /* vim: syntax=javascript
2 *
3 * .submit_norefresh()
~
~