パーソナルツール

パーセント「%」キーで対応する括弧へカーソルを移動する

作者: 小見 拓 最終変更 2012年01月08日 11時57分

vimエディタではプログラミングをする時に便利な機能がいくつか用意されており、 その中には、あるプログラミングコード中の 「{」に対応する閉じ「}」、「[」に対応する閉じ「]」、「(」に対応する閉じ「)」を見つけ出す機能があります。 (Windows, Mac)

概要

vimエディタではプログラミングをする時に便利な機能がいくつか用意されており、
その中には、あるプログラミングコード中の 「{」に対応する閉じ「}」、「[」に対応する閉じ「]」、「(」に対応する閉じ「)」を見つけ出す機能があります。

「%」によるカーソル」移動の使い方

下のコードで、2行目の「{」の上にエディタのカーソルがある時に % キーを入力すると、
対応する6行目の閉じ「}」にカーソルが移動します。

1:  // JavaScript
2:  function js_func() {
3:    // 何らかの処理
4:    // 何らかの処理
5:    // 何らかの処理
6:  }

↓( % キーを押す。)

1:  // JavaScript
2:  function js_func() {
3:    // 何らかの処理
4:    // 何らかの処理
5:    // 何らかの処理
6:  }

この機能は次のような場合に便利です。

  • 複雑なプログラムコードで対応する閉じ「}」を探す時、
  • 変数のスコープを知りたい時、
  • ある関数の終わりの位置、もしくは開始位置に移動したい時

Note

vimエディタの初期設定では、次の組み合わせに対応しています。
この組合せであれば、対応する括弧にカーソルを移動できます。

  • {}
  • []
  • ()

「matchpairs」変数

vimエディタの、この「%」でカーソルを移動できるペアの組み合わせは 「matchpairs」という変数で管理されています。
「matchpairs」変数がどのような設定になっているかを知るには、 vimエディタで次のコマンドを入力します。

:set matchpairs
「matchpairs」の設定確認

↓(コマンドの実行結果)

「matchpairs」の設定表示

「%」でカーソル移動できる新しい組み合わせを追加する

「%」でカーソル移動できる新しい組み合わせを追加するには、
vimエディタの設定ファイルで「matchpairs」変数を変更します。

設定方法

「matchpairs」変数には、 次の定義に従って、各組み合せを指定します。

  • ペア同士をコロン、
  • ペアの組み合わせの区切り目をカンマ、

設定例

新たに「<」と「>」の組合せを追加する場合の例としては、次のようになります。

:set matchpairs=(:),{:},[:],<:>

Note

組合せを追加するだけであれば、 次のコードでも問題ありません。

:set matchpairs+=<:>

動作確認

設定を追加して、vimエディタを再起動したら、 下のようなサンプルコードで正しく動くか確認してみてください。

1:  // XMLタグ風
2:  <text
3:    attribute1=""
4:    attribute2=""
5:    attribute3=""
6:  >
  • 2行目の「<」の位置で「%」キーを押したら、6行目の「>」の位置に、
  • 6行目の「>」の位置で「%」キーを押したら、2行目の「<」の位置に、

移動できれば設定成功です。

複数文字のペアへの対応

「matchpairs」変数を設定するだけでは、
2文字以上のキーワードの組み合わせには対応できません。

例えば、下のようなシェルスクリプトのコードがあるとして、
2行目の「if」と、5行目の「fi」との間を % キーで移動するようなことは
「matchpairs」の設定では実現できないのです。

1:  # shell script
2:  if [ -f hogehoge.txt ]
3:  then
4:      cat hogehoge.txt
5:  fi

もし

  • 複数文字での組合せを使いたい、
  • 正規表現を使いたい

という時には「 matchit.vim 」というvimスクリプトがあるので、
そのスクリプトを使えば実現できます。

ドキュメントアクション
コメント
blog comments powered by Disqus