BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Vimの正規表現処理が高速化,1000以上の修正と細かな改良も

Vimの正規表現処理が高速化,1000以上の修正と細かな改良も

原文(投稿日:2013/08/13)へのリンク

Vim 7.4が先頃,1ヶ月以上のベータ期間を経て,正式にリリースされた。さらに堅牢になると同時に,速度の向上した正規表現エンジンが新たに実装されている。

"大小すべての問題を解決して,Vimをより堅牢に" というのは,vimユーザから寄せられた一番欲しい機能リストの中で,6番目に数の多いものだった。Vim開発チームはこの問題を真剣に捉えたらしく,前回バージョンに1,000以上のフィックスと小改良を加えた7.3を,2010年8月にリリースした

これに加えて,新しい正規表現エンジンによってパフォーマンスも改善されている -

今は"旧"となった正規表現エンジンでは,バックトラッキングアルゴリズムを使用しています。ひとつの方法でテキストとパターンの一致を試みて,それが失敗すると,最初に戻って別の方法を試みる,というやり方です。単純なパターンならば良好に動作しますが,パターンが複雑になると,長いテキストでは非常に遅くなることがあります。

新しいエンジンはステートマシンを使用します。現在の文字に対して可能な選択肢をすべて試して,パターンの可能な状態を保存する方法です。単純なパターンでは少し遅くなりますが,複雑なパターンと長いテキストははるかに高速に処理できます。

python-bindeval(組み込みevalに代わるvim.bindeval)関数やpython-tabpageオブジェクト(tabpagesでの処理を可能にする)の追加など,Pythonインターフェースも改良されている。

7.3以降の変更内容の全リストは,これらreadmeファイル (2番目は7.4ベータ版以降のフィックス分)を参照するか,あるいは新バージョンのインストール後にコマンド ":help version7.4" を入力すればよい。

この記事に星をつける

おすすめ度
スタイル

BT