一个 vim 插件,可改善使用 ag 和 rg 等工具时的项目搜索体验。
我受到 fzf.vim 快速:Ag
搜索不带引号的多个单词、使用扩展搜索语法实时缩小多个结果的能力的启发,然后填充快速修复以进行大型重构?
:Ag function index
但我发现自己缺少传递命令行选项的能力,就像我可以使用 ack.vim 的:Ack
一样?
:Ack -Q -i 'function index' vendor
此外,fzf.vim 的:Ag
将引号视为搜索查询的文字部分,这与命令行上的ag
不一致。
因此,这个插件的目的是为您最喜欢的搜索包装器带来两全其美的效果。执行带或不带引号的多字搜索、传递命令行选项,并通过一个命令完成这一切。
阅读更多关于我使用 fzf.vim 和农业进行项目搜索工作流程的信息 ❤️
使用 vim-plug 或类似工具安装:
Plug 'jesseleite/vim-agriculture'
如果您已经在使用 fzf.vim,则可以使用提供的:AgRaw
/ :RgRaw
命令。
:AgRaw func.*index
:AgRaw 'func.*index'
:AgRaw -Q 'function index()' app/Http/Controllers
同样,对于:RgRaw
,只需将上面示例中的AgRaw
替换为RgRaw
即可。
如果您使用其他搜索包装器,则需要使用agriculture#smart_quote_input()
包装您的输入。
如果您正在使用提供的命令之一,您可以连接到.vimrc
中提供的<Plug>
映射:
nmap <Leader>/ <Plug>AgRawSearch
vmap <Leader>/ <Plug>AgRawVisualSelection
nmap <Leader>* <Plug>AgRawWordUnderCursor
同样,对于:RgRaw
,只需将上面示例中的AgRaw
替换为RgRaw
即可。
如果您使用提供的命令之一,您还可以在.vimrc
中设置默认命令行选项:
let g:agriculture#ag_options = '--case-sensitive'
同样对于:RgRaw
和g:agriculture#rg_options
。
如果您正在使用提供的命令之一,并且想要禁用智能引用以保持 CLI 一致性:
let g:agriculture#disable_smart_quoting = 1
现在,许多 fzf.vim 命令中默认呈现预览窗口。如果您希望自定义或禁用此行为,请参阅预览窗口上的 fzf.vim 文档。
除非满足以下条件,否则您的输入将被自动引用:
:Ag -Q "Already quoted this pattern."
:Ag Why you "scruffy looking nerf herder"!
:Ag Who's scruffy looking?
:Ag -Q function index
:Ag Which way to the beach? -> that way!
:Ag an escaped pattern vendor/folder
TL;DR:如果您使用引号、破折号或需要传递路径,建议您引用/转义您自己的模式,并且 vim-agriculture 不会妨碍您?
只是一个黑客?