Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) vim快速定位文件,花了一天才搞定

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

eclipse里有一个很好用的功能:按Ctrl+Shift+R后,会出来一个“文件查询框”,可以非常方便的找到当前所有项目中的某一个文件,快速定位。

vim中有没有呢?找到这样几个插件:

  1. FuzzyFinder : buffer/file/command/tag/etc explorer with fuzzy matching

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

  1. Command-T : Fast file navigation for VIM

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

  1. lookupfile : Lookup files using Vim7 ins-completion

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

  1. FuzzyFinder_textmate

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 :FufFileRecursive

这样,在vim中,按下Ctrl+Shift+R,就可以快速查找文件了。

comments powered by Disqus