Comment utiliser Ctrl-P pour rechercher de manière interactive le contenu d'un fichier pour tous les fichiers d'un projet?


15

J'ai essayé aujourd'hui d'effectuer une recherche sur tous les fichiers d'un projet. J'utilise Ctrl-P et je recherche sur des lignes comme ceci:

capture d'écran

Mais le résultat de la recherche est uniquement sur le fichier précédemment ouvert. Ici, j'ouvre seulement main.php.

Connaissez-vous un moyen de rechercher sur tous les fichiers sans avoir à les ouvrir un par un?

Merci,


1
C'est quelque chose que je veux aussi. Si vous utilisez ack ou ag, les performances ne devraient pas être un problème. De plus, si vous utilisez neovim, cela devrait être asynchrone, donc il ne devrait pas y avoir de bloc non plus.
mhartington

Enfin j'utilise ag comme commande ctrlp :)
nobe4

Réponses:


13

:CtrlPLine est en fait censé fonctionner sur les tampons répertoriés.

Si vous voulez absolument utiliser cette fonctionnalité sur chaque fichier de votre projet, vous pouvez les ajouter à la liste des arguments (et donc à la liste des tampons) avec quelque chose comme:

:argadd **/*.php

mais cela ne semble pas être une très bonne idée pour des raisons de performances.

Utiliser :vimgrepou :grepsonne beaucoup mieux pour moi:

:vim foo **/*.php
:cw

Vous perdez le "flou" de CtrlP, évidemment, mais vous obtenez en retour fiabilité et flexibilité.

Référence:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix

Une différence clé entre CtrlP et vim-grep est que CtrlP est interactif .
ideasman42

1

Vous devez utiliser ces plugins Sidesearch ou fzf

Les deux permettent de rechercher dans des répertoires récursifs à l'aide de silversearch-ag

fzf permet de rechercher sur les fichiers listés qui incluent votre chaîne.


1
Bonjour @MisterBanal, bienvenue sur notre site! Vous devez préciser dans votre réponse si ces plugins peuvent être interfacés avec CtrlP comme OP l'a demandé. S'ils peuvent être interfacés, vous devez expliquer comment et s'ils ne le peuvent pas, vous devez au moins donner un exemple de base de la façon de les utiliser, sinon votre réponse ne répond pas vraiment à la question. (Vous pouvez changer votre réponse avec le bouton "modifier" sous le texte).
statox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.