2009年 12月 05日

fuzzyfinder.vim -> fuf.vim

http://www.vim.org/scripts/script.php?script_id=1984

早いとの話だったので乗り換えたらホントに爆速でした。開発効率が1.5倍ぐらいになりそうです!!1 fuzzyfinder 自体 life changing なのにさらに……

設定をメモ

let g:fuf_modesDisable = ['mrucmd']
let g:fuf_file_exclude = '\v\~$|\.(o|exe|bak|swp|gif|jpg|png)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
let g:fuf_mrufile_exclude = '\v\~$|\.bak$|\.swp|\.howm$|\.(gif|jpg|png)$'
let g:fuf_mrufile_maxItem = 10000
let g:fuf_enumeratingLimit = 20
let g:fuf_keyPreview = '<C-]>'
let g:fuf_previewHeight = 0

nmap bg :FufBuffer<CR>
nmap bG :FufFile <C-r>=expand('%:~:.')[:-1-len(expand('%:~:.:t'))]<CR><CR>
nmap gb :FufFile **/<CR>
nmap br :FufMruFile<CR>
nmap bq :FufQuickfix<CR>
nmap bl :FufLine<CR>
nnoremap <silent> <C-]> :FufTag! <C-r>=expand('<cword>')<CR><CR> 

適当にセコンさんのをパクった。ちなみに僕は FufFile **/ を最もよく使う…… (MRU は候補に必要なファイルが確実にでてくるときしか安心できないのでなかなか使う機会がない)

FufLine が便利そうなので使ってみることに (覚えやすいように bl にマップ)

あと候補が下に出てほしいので preview をオフにして以下のパッチをあてた。

diff --git a/.vim/autoload/fuf.vim b/.vim/autoload/fuf.vim
index 0a91d3a..9d25e88 100644
--- a/.vim/autoload/fuf.vim
+++ b/.vim/autoload/fuf.vim
@@ -766,11 +766,11 @@ let s:bufNrFuf = -1
 "
 function s:openFufBuffer()
   if !bufexists(s:bufNrFuf)
-    topleft 1new
+    botright 1new
     silent file `='[fuf]'`
     let s:bufNrFuf = bufnr('%')
   elseif bufwinnr(s:bufNrFuf) == -1
-    topleft 1split
+    botright 1split
     execute 'silent ' . s:bufNrFuf . 'buffer'
     delete _
   elseif bufwinnr(s:bufNrFuf) != bufwinnr('%')