matchit.vim : 「%」による対応括弧へのカーソル移動機能を拡張
プログラムのコードで一つのブレース、括弧に対応する ブレース、括弧やらを探し出して、その場所に移動する機能を強化し、 HTML、XMLのタグなど複数の文字からなる記号でも、 対応記号へのジャンプを可能にするスクリプトです。 (Windows, Mac)
概要
matchit.zip : extended % matching for HTML, LaTeX, and many other languages
http://www.vim.org/script.php?script_id=39
vimの標準能力である 「%」キーで対応するブレースや括弧に飛ぶ機能 を強化します。
プログラムのコードで一つのブレース、括弧に対応する
ブレース、括弧やらを探し出して、その場所に移動する機能を強化し、
HTML、XMLのタグなど複数の文字からなる記号でも、
対応記号へのジャンプを可能にするスクリプトです。
vim6であれば、デフォルトで含まれています。
インストール方法
デフォルトでvim6に含まれているものの、
初期状態では無効化されています。
設定ファイル_vimrc、もしくは.vimrcファイルに、
下の設定を追加して、スクリプトを有効にして下さい。
:source $VIMRUNTIMEmacros/matchit.vim
ファイル | URL |
---|---|
matchit.vim | http://www.vim.org/script.php?script_id=39 |
使用方法
使い方はとても簡単で、
ある特定のブレース上で、もしくはタグ上で、
%
を押すと、対応するブレース、括弧に移動します。
このスクリプトはvimエディタ標準の機能の
「 パーセント「%」キーで対応する括弧へカーソルを移動する 」機能を強化し、
様々なパターンに対応できるようにしたものです。
対応するペアの設定
「b:match_words」変数の設定方法
対応するペアを設定する場合には、「b:match_words」に、
ペアの組み合わせをコロン(:)で区切って指定してください。
例えば、「if」と「endif」の間を「%」で移動したい場合は、
下のように設定してください。
:let b:match_words = "if:endif"
複数のペアを設定する場合は、それぞれのペアをカンマで区切ります。
:let b:match_words = "if:endif,(:),{:},[:]"
間に半角スペースがあっても問題ありません。
下の例だと、「if」と「end if」に対応します。
:let b:match_words = "if:end if"
大文字小文字の区別をしないようにする。
例えば、
:let b:match_words="begin:end"
と設定すると、
begin - end間は「%」コマンドで行き来できるようにはなりますが、
begin - END間では行き来できるようにはなりません。大文字、小文字が違うからです。
「%」コマンドで、大文字小文字の区別なく移動したいなら、
下の設定をvimエディタの設定ファイルに追加してください。
:let b:match_ignorecase = 1
単語は<、>で囲んでおいた方が良い
単語を「match_words」変数で指定する場合は、
まぎわらしい単語にマッチすることを避けるために
その単語を「<」「>」で囲んでおいた方が大抵の場合、良いでしょう。
:let b:match_words="begin:end"
↑こうではなく、↓このように設定する。
:let b:match_words="<begin>:<end>"
そうでないと、例えば、
:let b:match_words="begin:end"
と設定しているとして、次の例、
1行目の「begin」で「%」コマンドを実行した時に、
5行目の「end」ではなく、3行目にカーソルが移動してしまうからです。
1: begin 2: 3: dddddendddddd 4: 5: end
「match_words」には正規表現が使える
「match_words」には正規表現も使用できます。
次のように設定すると、
- beain/end
- bebin/end
- becin/end
のどれにもヒットすします。
:let b:match_words="be.in:end"
「matchpairs」の設定も生かしたいなら
次のように「b:match_words」に、 「matchpairs」変数の中身を足してしまえば良いです。
:let b:match_words = &matchpairs . ',begin:end'
Note
「matchpairs」変数の詳細については、
「 パーセント「%」キーで対応する括弧へカーソルを移動する 」の記事を
参照してください。
注意事項
「matchit.txt」というmatchit.vimスクリプトの詳しい説明が書かれたドキュメントが
vimエディタに添付しています。
かなり良くできたドキュメントなので、一度見ておくと良いでしょう。