一個 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 不會妨礙您?
只是一個黑客?