新着記事

2005年12月12日

matchit.vimスクリプトの設定match_wordsの話。

vimエディタのvimスクリプトmatchit.vim
このスクリプトの設定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'





本日は以上です。
では。
posted by 小見 拓 at 03:43| Comment(0) | TrackBack(0) | match pairs (vimエディタ) | このブログの読者になる | 更新情報をチェックする

2005年10月25日

パーセント、%、percent でのカーソル移動 3話目 (vimエディタ話)

前回からの続きの話です。
vimエディタの「%」キーの機能を拡張する。


(前回 パーセント、%、percent でのカーソル移動 3話目 (vimエディタ話))


複数文字をペアとして使いたい場合は、
matchit.vimスクリプトを使用すると良いでしょう。


matchit.vimスクリプトを利用する場合は、
まず、次のようなコードをvimエディタの設定ファイルに書いて、
matchit.vimスクリプトを読み込んでおく必要があります。

:source $VIMRUNTIME/macros/matchit.vim


このmatchit.vimスクリプトで、「%」キーで移動できるペアを追加するには、
組合せとなるペアを"matchpairs"に設定した時と同じように、、
"b:match_words"という値に、組合せを設定します。

" 設定例。こんなふうにvimエディタの設定ファイルに書きます。
" 間にコロン(:)、区切れ目にはカンマ(,)を置く
:let b:match_words = '<:>,<tag>:</tag>'



例えば、上のようにvimエディタの設定ファイルで設定しておくと、
「<」と「>」、
「<tag>」と「</tag>」の
間を「%」キーで移動できるようになります。




今日はこれくらいです。
では〜。
posted by 小見 拓 at 03:27| Comment(0) | TrackBack(0) | match pairs (vimエディタ) | このブログの読者になる | 更新情報をチェックする

2005年10月02日

パーセント、%、percent でのカーソル移動 2話目 (vimエディタ話)

今日は前回の続きから
(前回 http://advweb.seesaa.net/article/7457077.html)


「%」コマンドでのジャンプの設定は
「matchpairs」で行えます。


たーだーしー、
この「matchpairs」は、1文字と1文字の組合せしか
受け付けないのです。


例えば、下のようなシェルスクリプトのコードがあるとして、
2行目の「if」と、
5行目の「fi」との間を
「%」コマンドでジャンプするようなことは
「matchpairs」の設定ではできません。

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


もし、複数文字での組合せを使いたいとか、
あるいは正規表現を使いたいとかいう時には、
matchit.vimというスクリプトが用意されているので
それを使うと良いでしょう。



今日は以上です。

では〜
posted by 小見 拓 at 06:04| Comment(0) | TrackBack(0) | match pairs (vimエディタ) | このブログの読者になる | 更新情報をチェックする

2005年09月29日

パーセント、%、percent でのカーソル移動 (vimエディタ話)

今日はvimという名前の
少々マニアックなエディタのお話をします。


vimエディタでは、プログラミングをする時に便利な機能が
いくつか用意されています。


例えば、
あるプログラミングコード中の「{」に対応する
閉じ「}」を見つけ出す機能があります。


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

1:  // JavaScript
2: function js_func() {
3: // 何らかの処理
4: // 何らかの処理
5: // 何らかの処理
6: }
この機能があるので、
vimエディタを使っている人は
複雑なプログラムコードで対応する閉じ「}」を探す時、
変数のスコープを知りたい時、
ある関数の終わりの位置、もしくは開始位置に移動したい時に、
とても楽ができます。


この組み合わせには、「{」「}」の他にも、
「(」「)」、
「[」「]」があります。



1:  // C言語風プログラミング言語のメソッド
2: this.many_arg_method(
3: var1, var2, var3,
4: var4, var5, var6, var7
5: );
上は一例。
2行目最後の「(」で「%」キーを入力すると、
5行目の「)」に
5行目最後の「)」で「%」キーを入力すると、
2行目の「(」に
移動できる。




vimエディタの、
この「%」でカーソルを移動できるペアの組み合わせは
「matchpairs」という変数で管理されています。


今、「matchpairs」がどのような設定になっているかは、
下のコマンドをvimエディタで入力すると知ることができます。

:set matchpairs

matchpairs_call.jpg
matchpairs_result.jpg
私の今の設定は、「(」「)」、「{」「}」、「[」「]」
になっているようです。


もし、あなたが、「%」でジャンプできる
新しいペアの組み合わせを追加したい場合には、
vimエディタの設定ファイル.vimrcか、_vimrcで、
この変数「matchpairs」を変更すれば、
組合せを増やすことができます。



設定例としては、下のようになります。
新たに「<」と「>」の組合せを追加してみました。


ペア同士は、コロンで区切ります。
ペアの組み合わせの区切り目にはカンマを置きます。

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


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

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

6行目の「>」の位置で「%」キーを押したら、
2行目の「<」の位置に、


移動できましたか?





本日は以上です。
では〜


posted by 小見 拓 at 03:39| Comment(0) | TrackBack(1) | match pairs (vimエディタ) | このブログの読者になる | 更新情報をチェックする
記事検索
 
カテゴリ
最近のコメント
QKCのインストール [3-4/18]
 ⇒ kova (05/23)
calendar.vimには日記をつける機能があったらしい。
 ⇒ とまと (03/07)
最近よく見るようになったvimスクリプトのコメントの書き方
 ⇒ 小見 拓 (02/13)
 ⇒ kana (02/11)
vimエディタ ヘルプのgrep
 ⇒ みかん (07/15)
指定したカラム位置にテキストを流し込む (vimエディタ)
 ⇒ こみ (03/20)
 ⇒ とおりすがり (03/19)
 ⇒ こみ (03/18)
 ⇒ takayama (03/18)
tempfile -- Generate temporary files (Mac OSX)
 ⇒ take3 (01/20)
 ⇒ こみ (01/19)
 ⇒ take3 (01/18)
 ⇒ こみ (01/17)
 ⇒ take3 (01/14)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#2
 ⇒ (06/30)
 ⇒ Tetsuya Kuramochi (06/29)
 ⇒ Tetsuya Kuramochi (06/29)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#1
 ⇒ (06/03)
 ⇒ Tetsuya Kuramochi (06/02)
最近のトラックバック
vimエディタで「文字コード、改行コードを変更して保存する。」
 ⇒ window.closed (04/25)
 ⇒ himesuke’s STEP-log (03/18)
 ⇒ PukiWiki/TrackBack 0.2 (05/07)
vimエディタの折りたたみ機能の話。その2 (foldmethod=syntax)
 ⇒ 俺の基地 (PukiWiki/TrackBack 0.3) (04/20)
ログファイルを監視して、特定のキーワードが見つかったら、何らかのコマンドを実行する。
 ⇒ Apple Fan (10/16)
ファイル保存ダイアログの初期ディレクトリについての話 (vimエディタ話)
 ⇒ ナレッジエース (07/23)
:e <C-x> (編集中のファイルと同じディレクトリにあるファイルを開く。)
 ⇒ ボクノス (02/07)
Opening many files using wildcards.
 ⇒ PukiWiki Plus! (PukiWiki/TrackBack 0.4) (10/28)
 ⇒ 川o・-・)<2nd life (07/18)
vimエディタで印刷自由自在 その8 -エディタからの直接の印刷の代わりに、2html.vimスクリプトを使用する-
 ⇒ Knoppix Temporary Directory (PukiWiki/TrackBack 0.3) (02/19)
検索でマッチした対象に対して、置換を行う。(vimエディタ話)
 ⇒ 123net :: 開発日記 (12/31)
ごみ箱にファイルを叩き込むスクリプト。(vimエディタ)
 ⇒ "OSX" .app's :Macのアプリを便利、感動、面白をベースにほぼ日刊で紹介。 (11/26)
パーセント、%、percent でのカーソル移動 (vimエディタ話)
 ⇒ プログラミング言語 (10/11)
過去ログ
Profile
小見 拓
mail@nanasi.jp
小見と申します。
神奈川でデベロッパーやってます。
名無しのVIM使い

RSS 1.0


広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。