A Day in the Life

2009-04-13

ファイル名補完とあいまいマッチ

MRU モードで大文字小文字無視で、スペース区切り単語による indexOf 線形探索マッチ実装。正規表現使わないので高速。

  • javascript/Hatena/Bookmark.js
  • bookmark-xul/Hatena/Bookmark.js
  • tests/Hatena/Bookmark.js

なファイルがあって、Bookmark.js まで入力したけど候補三つあるよどうしよう、というときに 'Bookmark.js tests' とかで一番下のだけマッチする、みたいな。fuzzyfinder.vim に抽象化せずに実装したので、取り込んでいただくにはアレすぎるので、patch だけいちおう

以下書こうとしてさじを投げた文章

一ヶ月ぐらい使ってこれが一番便利だなぁ、と思ったのでエントリーにする。エディタの履歴ファイルを、適当なインクリメンタルサーチでマッチさせ開く場合は、ファイル名に日本語を含まない場合、大文字小文字無視によるスペース区切りによる、断片マッチが一番個人的に便利。

vim や emacs でのエディタで、本体もしくは plugin で、上記の履歴からインクリメンタルサーチでマッチさせて開く実装として、例えば Hatena/Bookmark.js というファイルをマッチさせるなら

  • ワイルドカードマッチ
    • H*B*
  • 正規表現マッチ
    • H.*B.*
  • あいまいマッチ(Eclipse や FuzzyFinder.vim の fuzzy pattern match)
    • HB や H/B

なんかがある。しかし、履歴から開く場合、上記絞り込みの場合、よく意図する物とはファイルがマッチしてしまう。

  • javascript/Hatena/Bookmark.js
  • bookmark-xul/Hatena/Bookmark.js
  • tests/Hatena/Bookmark.js

ディレクトリ、特にファイル名がかぶることが多すぎるのだ。で、大抵のプラグインの場合、そこからの絞り込みには対応していない。たとえば tests ディレクトリのに上記マッチから絞り込みたい場合 ( で行頭に戻れるとして )

  • ワイルドカードマッチ
    • H*B*tests*
  • 正規表現マッチ
    • H.*B.*tests.*
  • あいまいまっち
    • HBtests

のようになる。しかしそれでも、絞り込みの

ここはもっとくだらないことを書く場所だった

やった phpspot 様に掲載していただいたので僕もアルファブロガーの仲間入りだ.ne.jp!!!

ヒント:unsubscribe は DELETE キー

記事の一覧 >