A Day in the Life

2009-09-14

FuzzyFinder 3 設定

前バージョンと同じような挙動をするために設定ファイルを変更。とりあえずこんな感じ。

nnoremap    :FufBuffer!
nnoremap   ef :FufFile!
nnoremap  eff :FufFile!
nnoremap  efm :FufMruFile!
autocmd FileType fuf nmap  
let g:fuf_patternSeparator = ' '
let g:fuf_modesDisable = ['mrucmd']
let g:fuf_mrufile_exclude = '\v\~$|\.bak$|\.swp|\.howm$'
let g:fuf_mrufile_maxItem = 2000
let g:fuf_enumeratingLimit = 20

FuzzyFinder 3

アップデートご苦労様です!プロジェクト名(のディレクトリ名) -> ファイル名 などで曖昧マッチさせていたことが結構あったので、ディレクトリもプライマリでマッチできるオプションがあった方が個人的には嬉しいです。

また、makePartialRegexpPatter で、regexp を使わない方法もあると嬉しいです。というのも、MRU の件数を2000件ほど設定しており、regexp でマッチさせてると重いことが多くて、以前のパッチでは

function! s:IndexOfMatching(str, words)
  let s = tolower(a:str)
    for word in a:words
      if stridx(s, word) == -1
        return 0
      endif
    endfor
  return 1
endfunction

のような、str と words(partialPatter の単語)を投げて regexp に比べ高速化をしてました。ベンチをきちんととってないので正確には解らないのですが、stridx の方では数倍はパフォーマンスが出ていたとおもいます。ので、できたらベタ stridx なマッチ方法も選べると嬉しいです!

記事の一覧 >