2012-04-23 9 views
2

に含まれている、今、IRCで尋ねた:のVim%マッチング試合も引用されたテキスト

は、引用符で囲まれたまたはエスケープスキップする%マッチング動作を変更しますVimのプラグインがあります一致しますか?

考える:上のカーソルで

1  var1{ 
2    ... 
3    { Target = 'blah blah.*}', 
4    ... 
5    } 
6    ... 
7    $fem = \}; 
8  } 

{1%は、8行目にあなたを取るでしょう行に - スキップ引用さ}行に} 3行目にし、エスケープ7

その目的は、引用符付きのコードフラグメントが埋め込まれたData :: Dumperダンプをナビゲートすることです。

このマッチプラグインは、私のドキュメントを読んでも、このケースを処理しません。

Cluestickポインタが優先されます。

答えて

2

から:H%CPOため

When 'cpoptions' contains "M" |cpo-M| backslashes   
    before parens and braces are ignored. Without "M" the   
number of backslashes matters: an even number doesn't 
match with an odd number. Thus in "(\))" and "\((\)" the first and last parenthesis match. 

Mオプション:\}ケースに対処しない

M 

When excluded, "%" matching will take backslashes into   
account. Thus in "(\()" and "\((\)" the outer   
parenthesis match. When included "%" ignores   
backslashes, which is Vi compatible. 
+1

。 例では引用符で囲まれた3行目が問題です。 – MichaelRpdx

+0

':h%'において、 '' cpoption''フラグ '%'( 'cpo-%')が存在しない場合、 '%'は二重引用符で囲まれた括弧をスキップします。しかし、次のようにも追加されています。 'これはC言語ではうまく動作しますが、Perlでは文字列にシングルクォートが使われています。 ':set cpo - =%'であなたの例の二重引用符に一重引用符を変更するとうまくいくようです。だから、Vimオプションで直接問題を解決することはできないようです。おそらく、Vimにバンドルされているmatchitプラグイン( ':h matchit')を使って'% '動作を拡張することで、それを解決することができます。 – mMontu

関連する問題