私は、つまずいてファイルの残り全体を緑色に変えるのに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{}
、構文定義が実行できない何らかの解析を行わずに、 がどこで終了するかを知ることができるかどうかさえわかりません。