How to syntax-highlight a part of file in a different syntax?

You can use my SyntaxRange plugin for that.

Either explicitly assign the range, e.g.

:10,20SyntaxInclude bnf

or automatically based on the delimiting patterns:

:call SyntaxRange#Include('<BNF>', '</BNF>', 'bnf')

for many file types vim will use the heredoc names as a clue. For example in php files I'm often creating here docs thus:

<?php 

$my_html = <<<html 
<h1>Solar</h1> 
<p>Is <em>good</em></p> 
html; 

$my_js = <<<javascript 
alert('yeah baby'); 
javascript; 

$my_sql = <<<sql 
SELECT user 
FROM mytable 
WHERE energy = 'solar'; 
sql; 

works beautifully, with only problem being that indentation is problematic (the closing marker cannot have preceding spaces)

Tags:

Vim