查看Ggrep
Fzf 提供的命令 - 请参阅这一系列 vim 截屏视频,了解如何使用 vim 的内置功能(由 :vimgrep 填充的快速修复列表)使用其他 grepping 工具实现相同目的。
自定义函数
我的 .vimrc 中有一个函数,它使用ag silver searcher在目录(和任何子目录)中的所有文件中进行搜索。因此,如果您安装 ag,这应该可以:
" Ag: Start ag in the specified directory e.g. :Ag ~/foo
function! s:ag_in(bang, ...)
if !isdirectory(a:1)
throw 'not a valid directory: ' .. a:1
endif
" Press `?' to enable preview window.
call fzf#vim#ag(join(a:000[1:], ' '),
\ fzf#vim#with_preview({'dir': a:1}, 'right:50%', '?'), a:bang)
endfunction
" Ag call a modified version of Ag where first arg is directory to search
command! -bang -nargs=+ -complete=dir Ag call s:ag_in(<bang>0, <f-args>)
奖金
有时很难在 vim 的帮助中找到东西,所以我也有一个使用上面的功能来交互搜索帮助文档的功能。这可以很好地磨练您想要的主题。用于:H
此功能(与经典相反:h
)
function! Help_AG()
let orig_file = expand(@%)
let v1 = v:version[0]
let v2 = v:version[2]
" search in the help docs with ag-silver-search and fzf and open file
execute "normal! :Ag /usr/share/vim/vim".v1.v2."/doc/\<CR>"
" if we opened a help doc
if orig_file != expand(@%)
set nomodifiable
" for some reason not all the tags work unless I open the 'real' help
" so get whichever help was found and open it through Ag
let help_doc=expand("%:t")
" open and close that help doc - now the tags will work
execute "normal! :tab :help " help_doc "\<CR>:q\<CR>"
endif
endfunction
" get some help
command! H :call Help_AG()