software_base-command_tool-vim-find

查找文件(包括文件夹),几种方式:


建议多使用easygrep跟vimgrep,其次是cscope。


1. find
使用find命令,在当前目录查找并打开文件(夹),比如:find vim-find,相当:e vim-find,可以直接使用e来替代find。
这种查找是在当前path中查找,所以应该先设置好当前路径,比如使用netrw的情况下只需要按下c即可。操作:c --> :e youfile
好处:可以快速定位到当前目录的文件,不足:明显只能是当前目录,而且不能查找子目录。


2. vimgrep
实际上只是查找字符串(文件内容,非文件)
vimgrep /*/ **/appdelegate    --查找appdelegate文件,不区分文件名大小写
vimgrep /av_register/ **    --vim的工作目录下递归查找
vimgrep /av_register/ *    --只在vim的当前工作目录查找
vimgrep /av_register/ **/*.cpp  --查找所有cpp文件
好:支持正则查找字符串。不好:速度比较慢。




3. cscope
ctags的升级:cscope。
在vim中,进行查找的工作,比如查找文件,查找函数的所有调用,使用cscope。
安装:
brew install cscope
跟ctags的使用一样,先到代码的根目录,生成cscope.out:
cscope -Rbkq
并且,设置vimrc:
if has("cscope")
    set cscopequickfix=s-,c-,d-,i-,t-,e-
    set csto=0
    set cst
    set csverb
    if filereadable("cscope.out")
        cs add cscope.out
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif
    nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
    nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
endif


参数说明:
f --查找文件
c --查找所有调用
i --查找包含这个头文件的所有文件
g --查找定义,同ctags的<ctrl+]>
t --查找所有使用到此字符串的地方,同vimgrep


比如:
:cs find t AVSEEK_SIZE  --所有有这个字符串的地方
:cs f c ds_size  --所有调用ds_size的地方
:cs find g ds_size  --ds_size的定义
上面的配置加入了快捷键:ctrl + _ + ..


同样,要注意vim当前的工作目录,最好是cscope.out所在的目录,以避免在使用cscope查找到文件并切换过去时创建了新的文件(由于是新的目录)。


注意,使用cscope的前提是先要让vim加载到cscope.out库,上面在vimrc中的设置就是为了让vim在当前目录加载cscope.out,如果当前目录没有,就会从CSCOPE_DB加载(可以先设置CSCOPE_DB的值)。也可以直接使用:cs add cscope.out来加载。


好:cscope查找快速。不好:还是有很大局限,比如不支持正则表达式的查找,而且有时总是跳不过去。


4. easygrep
先安装easygrep插件:
//www.vim.org/scripts/script.php?script_id=2438
在~/.vim下,mkdir plugin doc
然后把easygrep的plugin跟doc的内容对应拷贝进去,即可使用。


使用方式:直接使用命令:Grep ... 或者对当前光标处的word使用快捷键:\vv等。
\vv  --相当Grep word
\vV  --相当Grep !word,即全字查找
\va  --查找,并把结果追加到上一次查找结果中
\vA  --全字查找,并把结果追回
\vr  --相当Replace target replacement
\vo  --相当GrepOptions,可设置查看设置选项



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值