2013-04-23 23 views
10

bnf.vim(BNF文法ファイルを強調表示)がインストールされています。異なる構文でファイルの一部を構文ハイライトする方法は?

は、私は自分のコード内のコメントがあるとします。

/* <BNF> 

<S> := <A> | h 
<A> := a | b | c | . 

</BNF> */ 

をVimには何とか全ファイルのファイルタイプにもかかわらず、BNF構文でそのコメントをハイライト表示するようにプログラムすることができますか?

答えて

14

これには私のSyntaxRange pluginを使用できます。

明示的に範囲を割り当てます。区切りパターンに基づいて自動的に

:10,20SyntaxInclude bnf 

か:

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

を(終値マーカーは、前にスペースを持つことはできません)。 'autocmd構文*存在する場合(" b:current_syntax ")|私は 'BNF {{{...}}}'に ' ...'を簡単にフォールドするように変更しました。(BNF {{{'}}}'、 'bnf' 。 –

+0

実際のソリューションをお寄せいただきありがとうございます。なぜ 'b:current_syntax'をチェックしますか? –

+0

私はそうしないと、エラー処理関数を出力します。SyntaxRange#Include..SyntaxRange#IncludeEx: 32行目: E108: 'b:current_syntax"は ':help'を実行します。たぶん私は別のautocmdイベントを使用する必要がありますか? –

1

手がかりとしてヒアドキュメント名を使用します、多くの種類のファイルをvimのため。 PHPファイルの例では、私はしばしばので、ここでドキュメントを作成しています:

<?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; 

作品を美しく、唯一の問題とそのインデントには問題があること.vimrc` `について

+0

はそれを動作させることができませんでした。 – oligofren

関連する問題