Hatena::Groupsubtech

#生存戦略 、それは

-> 09 { 04 / 13 }

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

15:03 | はてなブックマーク -  ファイル名補完とあいまいマッチ - #生存戦略 、それは

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

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

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


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

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

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

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

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

  • ワイルドカードマッチ
    • H*B*<C-a>tests*
  • 正規表現マッチ
    • H.*B.*<C-a>tests.*
  • あいまいまっち
    • HB<C-a>tests

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

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

11:30 | はてなブックマーク - ここはもっとくだらないことを書く場所だった - #生存戦略 、それは

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

ヒント:unsubscribe は DELETE キー

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20090413