11
votes

Vim Rechercher texte dans le dossier

Y a-t-il un moyen de rechercher un texte dans un dossier et d'afficher les résultats de la recherche dans un tampon séparé dans Vim? (Comme sublime texte ctrl + shift + f résultats)


0 commentaires

3 Réponses :


9
votes

sonne comme si vous avez besoin ack.vim code> :

Ce plugin est un front pour l'application de module Perl :: ack. ACK peut être utilisé comme remplacement de 99% des utilisations du GREP. Ce plugin vous permettra d'exécuter ACK de VIM et affiche les résultats dans une fenêtre fractionnée. P> blockQuote>

Utilisation: P>

:Ack [options] {pattern} [{directory}]
Search recursively in {directory} (which defaults to the current directory) for the {pattern}.


0 commentaires

5
votes

Le : grep Vim déléguette la recherche dans l'outil Externe grep (ou une alternative compatible comme ack , défini via 'Grepprg' ). Vous pouvez également utiliser : vimgrep , qui effectue la recherche à l'intérieur de Vim. Cela permet d'utiliser les mêmes expressions ordinaires et modèles de globules ordinaires de style VIM (comme ** / ), mais il est généralement plus lent car chaque fichier est lu dans un tampon VIM.

Les deux commandes affichent les résultats dans la fenêtre Quickfix, à partir duquel vous pouvez naviguer vers les matchs.

Vous n'avez pas besoin de plug-ins pour cela, bien qu'il y ait plusieurs personnes disponibles, essayez de faciliter la gestion des commandes de recherche ou de prendre en charge différentes commandes de recherche (par exemple, les ACK.VIM ).


0 commentaires

26
votes

Non, vous ne besoin em> n'importe quel plugin. La valeur par défaut : vimgrep code> (ou : vim code>) est tout ce que vous besoin em>.

recherche foo code> dans chaque Fichier dans le répertoire actuel: p> xxx pré>

recherche FOO code> dans chaque fichier JavaScript dans le répertoire actuel: P>

:vim <C-r><C-w> * | cw
:vim <cword> * | cw


3 commentaires

A l'air agréable, mais y a-t-il un moyen d'ouvrir un fichier avec l'un des résultats trouvés sans concentrer sa mémoire tampon?


Bien sûr. Voir : H Quickfix . Par exemple : CC5 Pour passer au numéro d'erreur 5, : CN Pour passer à l'erreur suivante, : CN ou : CP < / Code> Pour passer à l'erreur précédente ...


N'oubliez pas: lvimgrep (avec : lopène , :: herwind , : lnext , : lprev , et Même : loup , : lnewer - il s'agit plutôt de darn génial et n'interfère pas avec votre cycle Quickfix ordinaire