Windows下使用VIM,搭建Mainframe开发环境(四)---文件查找

这次搬出两个超强的插件
Fuzzy Finder
Lookupfile

 

Fuzzy Finder:
它支持查找任意文件夹下的文件查找,具有多种模式.
比如查找文件夹,文件,最近使用的文件,最近使用的命令,缓冲区,书签,标签等.

Fuf


以下是Fuzzy Finder的推荐配置,从中可以看出所支持的查找模式:

let g:FuzzyFinderOptions = { 'Base':{}, 'Buffer':{}, 'File':{}, 'Dir':{}, 'MruFile':{},
                           / 'MruCmd':{}, 'Bookmark':{}, 'Tag':{}, 'TaggedFile':{}}
let g:FuzzyFinderOptions.Base.ignore_case = 1
let g:FuzzyFinderOptions.Buffer.mode_available = 1
let g:FuzzyFinderOptions.File.mode_available = 1
let g:FuzzyFinderOptions.MruFile.mode_available = 1
let g:FuzzyFinderOptions.MruCmd.mode_available = 1
let g:FuzzyFinderOptions.Dir.mode_available = 1
let g:FuzzyFinderOptions.Tag.mode_available = 0
let g:FuzzyFinderOptions.TaggedFile.mode_available = 0
let g:FuzzyFinderOptions.MruFile.max_item = 200
let g:FuzzyFinderOptions.MruCmd.max_item  = 200

对热键的映射:
nnoremap <silent> <leader>fb   :FuzzyFinderBuffer<CR>
nnoremap <silent> <leader>ff   :FuzzyFinderFile <C-r>=expand('%:~:.')[:-1-len(expand('%:~:.:t'))]<CR><CR>
nnoremap <silent> <leader>mf   :FuzzyFinderMruFile<CR>
nnoremap <silent> <leader>mc   :FuzzyFinderMruCmd<CR>
nnoremap <silent> <leader>fd   :FuzzyFinderDir<CR>
nnoremap <silent> <leader>de   :FuzzyFinderDir <C-r>=expand('%:p:~')[:-1-len(expand('%:p:~:t'))]<CR><CR>
nnoremap <silent> <leader>bm   :FuzzyFinderBookmark<CR>
nnoremap <silent> <leader>ei   :FuzzyFinderEditInfo<CR>
"nnoremap <silent> <leader>ft   :FuzzyFinderTag!<CR>
"nnoremap <silent> <leader>te   :FuzzyFinderTag! <C-r>=expand('<cword>')<CR><CR>
"nnoremap <silent> <leader>tf   :FuzzyFinderTaggedFile<CR>

定义快速链接:
let g:FuzzyFinderOptions.Base.abbrev_map  = {
      /   "^VIM" : [
      /     "D:/Cygwin/usr/share/Vim/",
      /   ],
      /   "^WORK" : [
      /     "E:/Workstation/",
      /   ],
      / }
在查找文件的模式中输入vim就可以直接查找D:/Cygwin/usr/share/Vim/下面的文件,是不是很方便呢.

 

还包括其他模式: 最近使用的文件/最近使用的命令/查找缓冲区

 

 

Lookupfile:
配置:
let g:LookupFile_MinPatLength = 3               "Last words number to find
let g:LookupFile_PreserveLastPattern = 0        "Don't save last pattern
let g:LookupFile_PreservePatternHistory = 0     "Save history
let g:LookupFile_AlwaysAcceptFirst = 1          "Enter to open 1st one
let g:LookupFile_TagExpr = '"e://Workstation//vim//vim72//src//filenametags"'

对于各项配置,不清楚可以直接查看帮助文档.
以上分别是至少输入3个字符才开始查找,不保存上次输入的模式,不保存历史记录,回车键接受第一个菜单项.
最后一个是定义的文件索引所在位置.
Lookupfile需要有文件索引才能正常工作,建立好索引后,直接输入文件名称,即可弹出下来菜单选择所查找的文件,而不必输入完整或相对目录.
这对于查找一个工程中有大量文件时很有用,可以快速定位并打开文件.
Lookupfile默认映射F5为快捷键用于切换打开和关闭查找窗口.

如果使用自动弹出完成菜单的插件autocomplpop,会和Lookupfile有冲突,以致不能弹出完成菜单.
可以修改Lookupfile,打开之前禁用autocomplpop,选择文件后启用autocomplpop.
plugin/LookupFile.vim:
nmap <unique> <silent> <F5> :AutoComplPopDisable<CR><Plug>LookupFile
autoload/lookupfile.vim:  exec "AutoComplPopEnable"

使用效果(这个插件已经用Neocomplcache代替):

auto pop

 

建立索引可以用脚本完成:
#!/bin/sh
echo -e "!_TAG_FILE_SORTED/t2/t/2=foldcase/" > filenametags
find -type f -printf "%f/t%p/t1/n" | sort -f >> filenametags

Lookupfile用二分法查找排序后的索引,有助提升速度.更多可以参考这里 .

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值