Vous utilisez vim. Vous avez un outil pour faire cela intégré.
Comme on pouvait s'y attendre, il y a déjà sept réponses à utiliser grep
. Mais il semble que je sois la seule personne à ce jour à avoir remarqué dans votre question que vous utilisez vim
. En tant que tel, bien que vous puissiez utiliser grep
de l'intérieur vim
, vous pouvez également utiliser vim
l'outil intégré. Ceci est appelé via la :vimgrep
commande.
Pour rechercher "tous les fichiers source C dans le répertoire en cours pour les appels à la fonction toUpperCase()
", vim
tapez la commande
:vimgrep "\<toUpperCase\_s*(" *.c
La liste de correspondances résultante est automatiquement chargée dans la liste des correctifs rapides, accessible avec l’un des deux (voir l’aide en ligne pour connaître la différence subtile).
:copen
:cwin
Pour trouver la définition de la fonction , plutôt que de l'appeler, ctags
utilisez l'outil, comme indiqué dans Gilles
la réponse de , en conjonction avec les commandes :tjump
ou :tselect
.
Pourquoi utiliser :vimgrep
?
La fonction help ( :help grep
) en ligne énumère plusieurs des raisons que je ne vais pas mentionner ici. En plus de celles-ci, comparez l’action de :vimgrep
avec celle de dietbuddha
' . dietbuddha
La ligne de commande de sks lance un grep
processus individuel pour chaque fichier source C individuel. Il n'emploie même pas xargs
pour réduire ces frais généraux. Et il vous reste à analyser la sortie pour appeler votre éditeur de texte sur les fichiers sources pertinents une fois que celui-ci est terminé. :vimgrep
ne déclenche pas du tout plusieurs processus supplémentaires, et utiliser le résultat est la simplicité même. Le simple fait de sélectionner l'une des entrées de la liste de correctifs rapides résultante positionne automatiquement le curseur sur la ligne appropriée du fichier source correspondant.
En fait, il fait exactement ce que vous avez écrit à la main, sauf automatiquement. C'est la manière automatisée de faire ces actions d'éditeur de texte. Il charge le fichier comme s'il était chargé à la main, recherche une expression régulière (en utilisant la même syntaxe d'expression régulière que celle que vous utilisez déjà ailleurs vim
), enregistre les emplacements où les correspondances se produisent, puis décharge le fichier.