Un plugin vim pour améliorer l'expérience de recherche de projet lors de l'utilisation d'outils comme ag et rg.
J'ai été inspiré par la capacité de fzf.vim à :Ag
rechercher rapidement plusieurs mots sans guillemets, affiner plusieurs résultats en temps réel avec une syntaxe de recherche étendue, puis remplir un correctif rapide pour un grand refactor ?
:Ag function index
Mais je me suis retrouvé à manquer la possibilité de transmettre des options de ligne de commande comme je le pourrais avec :Ack
?
:Ack -Q -i 'function index' vendor
De plus, :Ag
de fzf.vim traite les guillemets comme une partie littérale de la requête de recherche, ce qui est incompatible avec ag
sur la ligne de commande.
Ainsi, l’intention de ce plugin est d’apporter le meilleur des deux mondes à votre wrapper de recherche préféré. Effectuez des recherches de plusieurs mots avec ou sans guillemets, transmettez les options de ligne de commande et faites tout cela à partir d'une seule commande.
En savoir plus sur mon workflow de recherche de projet avec fzf.vim et l'agriculture ❤️
Installez à l'aide de vim-plug ou similaire :
Plug 'jesseleite/vim-agriculture'
Si vous utilisez déjà fzf.vim, vous pouvez utiliser les commandes :AgRaw
/ :RgRaw
fournies.
:AgRaw func.*index
:AgRaw 'func.*index'
:AgRaw -Q 'function index()' app/Http/Controllers
De même pour :RgRaw
, remplacez simplement AgRaw
par RgRaw
dans les exemples ci-dessus.
Si vous utilisez un autre wrapper de recherche, vous devrez envelopper votre entrée avec agriculture#smart_quote_input()
.
Si vous utilisez l'une des commandes fournies, vous pouvez vous connecter aux mappages <Plug>
fournis dans votre .vimrc
:
nmap <Leader>/ <Plug>AgRawSearch
vmap <Leader>/ <Plug>AgRawVisualSelection
nmap <Leader>* <Plug>AgRawWordUnderCursor
De même pour :RgRaw
, remplacez simplement AgRaw
par RgRaw
dans les exemples ci-dessus.
Si vous utilisez l'une des commandes fournies, vous pouvez également définir les options de ligne de commande par défaut dans votre .vimrc
:
let g:agriculture#ag_options = '--case-sensitive'
Encore une fois pour :RgRaw
avec g:agriculture#rg_options
.
Si vous utilisez l'une des commandes fournies et souhaitez désactiver les guillemets intelligents pour la cohérence de la CLI :
let g:agriculture#disable_smart_quoting = 1
Les fenêtres d'aperçu sont désormais affichées par défaut dans de nombreuses commandes fzf.vim. Si vous souhaitez personnaliser ou désactiver ce comportement, consultez la documentation de fzf.vim sur les fenêtres d'aperçu.
Votre contribution sera automatiquement citée sauf si les conditions suivantes sont remplies :
: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 : Si vous utilisez des guillemets, des tirets ou si vous devez suivre un chemin, il est recommandé de citer/échapper votre propre modèle et vim-agriculture restera en dehors de votre chemin ?
Juste un hack ?