2

私は、つまずいてファイルの残り全体を緑色に変えるのにqq{...}優れた仕事をする文字列を持つ多くのファイルを扱っています。vim

この perl 構文定義を試してみましたが、役に立ちませんでした。またperl.vim、vim に付属の構文ファイルよりも古い日付になっていることにも気付きました。

私は、mercurial ソースから新しくコンパイルされた vim 7.3.918 を使用しています。その perl 構文ファイルは次のようになります。

  1 " Vim syntax file
  2 " Language:     Perl 5
  3 " Maintainer:   Andy Lester <andy@petdance.com>
  4 " URL:          http://github.com/petdance/vim-perl/tree/master
  5 " Last Change:  2010-08-10
  6 " Contributors: Andy Lester <andy@petdance.com>
  7 "               Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
  8 "               Lukas Mai <l.mai.web.de>
  9 "               Nick Hibma <nick@van-laarhoven.org>
 10 "               Sonia Heimann <niania@netsurf.org>
 11 "               and many others.
 12 "
 13 " Please download most recent version first before mailing
 14 " any comments.
 15 "
 16 " The following parameters are available for tuning the
 17 " perl syntax highlighting, with defaults given:
 18 "                                                                                                                                                                                                                                                                              19 " unlet perl_include_pod
 20 " unlet perl_no_scope_in_variables
 21 " unlet perl_no_extended_vars
 22 " unlet perl_string_as_statement
 23 " unlet perl_no_sync_on_sub
 24 " unlet perl_no_sync_on_global_var
 25 " let perl_sync_dist = 100
 26 " unlet perl_fold
 27 " unlet perl_fold_blocks
 28 " let perl_nofold_packages = 1
 29 " let perl_nofold_subs = 1
 ...

qq{}コードで死ぬ。これらは通常、他の区切り文字を使用して対処できますが、ここで話しているのは大量のコードです。

perl.vimこれの q/qq/qr/qx 引用を扱う部分を見てみましたが、見事に複雑です。

これは、うまく機能しないコードの例です。

ここに画像の説明を入力

これ以上コードを貼り付けることはできないので、基本的にファイルの残りのすべてのコンテンツが文字列として扱われることを信じてください。

確かに問題のように見えるのは}、 の最後の$layout->{ID}が の最後として解釈されることqq{}です。

しかし、このコードが実行されるため、そうではありません。クラッシュして燃えません。したがって、vim は間違っており、}. ただし、この1行が示すように、ブラケットは行末にある可能性があります...

この時点ではqq{}、構文定義が実行できない何らかの解析を行わずに、 がどこで終了するかを知ることができるかどうかさえわかりません。

4

2 に答える 2

2

これは、 vim 7.3 の perl を強調表示する機能を大幅に改善した vim プラグインです。

願わくば、これがすべてコア vim 7.4 に組み込まれることを願っています。

于 2013-05-22T20:26:17.773 に答える
1

#'問題の行の最後にa を追加しますか? 申し訳ありませんが、提案するより良いものはありません。

これは、perl が構文ハイライターが現実的にサポートできるよりも柔軟に対応できる領域です。

于 2013-05-06T19:56:20.447 に答える