eclipse里有一个很好用的功能:按Ctrl+Shift+R后,会出来一个“文件查询框”,可以非常方便的找到当前所有项目中的某一个文件,快速定位。
vim中有没有呢?找到这样几个插件:
http://www.vim.org/scripts/script.php?script_id=1984
http://www.vim.org/scripts/script.php?script_id=3025
http://www.vim.org/scripts/script.php?script_id=1581
http://github.com/jamis/fuzzyfinder_textmate
然而,坏消息是,这四个都有这样那样的问题:
FuzzyFinder找深层的文件不方便,Command-T在我这里(windowsxp+ruby1.8.7+gvim7.2)怎么也装不上,好像是ruby的问题,弄了一天也没解决。lookupfile需要用linux下的一个程序生成特定格式的索引,而FuzzyFinder_textmate由于它所依赖的FuzzyFinder不断变化,作者已经停止维护。
郁闷得吐血,但是这个功能由于太常用,所以还是不能放弃。最后找到了这样一篇文章:
http://intraspirit.net/scratchpad/a-simple-fuzzyfinder-improvement/
作者给FuzzyFinder里增加了一小段代码,让它也可以查找深层的文件了。虽然只改动了一点点,但是的确方便了很多。(不过实话说,跟eclipse的相比,还是差一点)
在没有找到更好的插件之前,先用这个方法了。
打开vim/vim72/autoload/fuf/file.vim,找到function fuf#file#onInit(),增加一行:
call fuf#defineLaunchCommand('FufFileRecursive', s:MODE_NAME, '“**/“')
然后定义快捷键,在_vimrc中增加:
" FuzzyFinder - Ctrl + Shift + R
map
这样,在vim中,按下Ctrl+Shift+R,就可以快速查找文件了。