========
Linux上使用Vim進(jìn)行文件搜一般使用grep命令+grep.vim插件完成, 但在Windows上使用grep就有些不方便了, GnuWin32和UnxUtils雖然都提供了Windows移植版本的Grep.exe, 但都有bug, 比如:
在Windows上使用grep還有一個(gè)折衷的辦法: 使用Cygwin環(huán)境, 不過今天這里不討論Cygwin...
偶然在這個(gè)博客上發(fā)現(xiàn)了EasyGrep插件的介紹: vim中的殺手級(jí)插件: EasyGrep, 當(dāng)時(shí)我是多么執(zhí)著于在Windows上移植Grep和ack啊... 浪費(fèi)了不少時(shí)間之后才發(fā)現(xiàn)還是使用現(xiàn)成的工具比較好-.-
EasyGrep的安裝
如果你已經(jīng)使用了Vundle管理Vim插件, 只需要在.vimrc里增加Bundle 'EasyGrep'然后使用:BundleInstall安裝即可.
How To Use
-
\vvor:Grep:\vv命令將在文件中搜索當(dāng)前光標(biāo)下的單詞,:Grep word將搜索"word", 如果加嘆號(hào):Grep !word表示全詞匹配的方式搜索, Grep也可以帶參數(shù), 比如:Grep -ir word, r表示遞歸目錄. i表示不區(qū)分大小寫. -
\vV: 全詞匹配搜索, 同:Grep !word; -
\va: 與vv相似, 搜索結(jié)果append在上次搜索結(jié)果之后; -
\vA: 與vV相似, 搜索結(jié)果append在上次搜索結(jié)果之后; -
\vror:Replace:替換; -
\voor:GrepOptions: 打開選項(xiàng)菜單;
GrepOptions打開的界面:

圖1: GrepOptions打開的界面
上方紅色的是快捷鍵help, 比如
q是退出GrepOptions, r是開啟遞歸搜索...下方蘭色的可以選擇搜索范圍(回車選擇): All表示全部搜索, Buffer表示只搜索當(dāng)前打開的buff, TrackExt幾乎包括所有常見的文件類型, 比如C++, PHP, Lisp等源文件. User是自己制定文件類型.
Options Details
每個(gè)Option的解釋可以參考Github上的README
let g:EasyGrepMode = 2 " All:0, Open Buffers:1, TrackExt:2,
let g:EasyGrepCommand = 0 " Use vimgrep:0, grepprg:1
let g:EasyGrepRecursive = 1 " Recursive searching
let g:EasyGrepIgnoreCase = 1 " not ignorecase:0
let g:EasyGrepFilesToExclude = "*.bak, *~, cscope.*, *.a, *.o, *.pyc, *.bak"