このスクリプトの設定match_wordsの話。
matchit.vimスクリプトは、
通常1文字のペアにしか対応できない、vimエディタの「%」コマンドを、
HTMLタグや、if/endifなどの複数文字のペアでも使えるように
「%」コマンドの機能を強化するスクリプトです。
今回の話は、このmatchit.vimスクリプトの挙動を決定するmatch_wordsの設定についてです。
これの続き。
パーセント、%、percent でのカーソル移動 3話目 (vimエディタ話)
http://advweb.seesaa.net/article/8518955.html
大文字小文字の区別をしないようにする。
例えば、
:let b:match_words="begin:end"と設定した場合、
begin/end間を「%」コマンドで行き来できるようにはなりますが、
begin/END間では行き来できるようにはなりません。
「%」コマンドで、大文字小文字の区別なく移動したいなら、
下の設定をvimエディタの設定ファイルに追加してください。
:let b:match_ignorecase = 1
単語は\<、\>で囲んでおいた方が大抵の場合、良い
単語をmatch_wordsで指定する場合は、
まぎわらしい単語でマッチするこを避けるために
その単語を「\<」「\>」で囲んでおいた方が良い。
そうでないと、例えば、
:let b:match_words="begin:end"と設定しているとして、
1行目の「begin」で「%」コマンドを実行した時に、
5行目の「end」ではなく、3行目にカーソルが移動してしまうようなことが
起きてしまうからだ。
1: begin
2:
3: dddddendddddd
4:
5: end
match_wordsには正規表現が使える
match_wordsには正規表現も使える。
:let b:match_words="be.in:end"
この例だと、
beain/end、bebin/end、becin/end
のどれにもヒットする。
matchpairsの設定も使いたいなら
これぐらいならベタで書いてしまっても全然問題ないだろうとは思うけど、
下のように、足してしまえば良い。
:let b:match_words = &matchpairs . ',begin:end'
本日は以上です。
では。