9
votes

Indexation de la ligne de commande de ligne de commande?

Nous avons une énorme base de code horrible et horrible qui rend presque impossible de trouver des choses lorsque vous en avez besoin. Nous travaillons sur l'amélioration de cela, bien sûr ... mais je me trouve souvent à faire des greps graves massives pour rechercher dans le contenu des fichiers pour trouver où sont utilisés.

Y a-t-il un outil que je peux utiliser pour créer un index complet de fichiers texte dans un répertoire, puis la questionner à partir de la ligne de commande?

Préfère quelque chose qui peut être exécuté dans l'espace utilisateur et n'a pas besoin d'un démon. Nous avons de nombreux utilisateurs sur notre serveur de devis, donc je souhaite quelque chose que je puisse effectuer une recherche via mon instance de codeBase.


3 commentaires

Toute langue ou environnement particulière?


Avez-vous essayé ack ? Je trouve généralement que c'est assez rapide sans avoir besoin d'un indice de texte complet, même sur de très grands projets.


@Greghewgill Woo, ça a l'air intéressant. Beau nom de domaine aussi :)


4 Réponses :



2
votes

Russ Cox a écrit une série d'articles décrivant comment l'algorithme de recherche de code Google a fonctionné . Il réimploie une version simplifiée de l'algorithme dans Un ensemble d'outils de ligne de commande pouvant effectuer des recherches rapides à regex sur un Code localbase .

Une alternative consiste à utiliser quelque chose comme CTAGS pour créer un index des identificateurs utilisés dans le code. De nombreux éditeurs (y compris VIM, que j'utilise) peuvent utiliser ce fichier de balises pour passer rapidement aux définitions des identifiants.


0 commentaires

1
votes
CRTL+] will jump to the definition of the method under the cursor 
CRTL+t will go back

0 commentaires

0
votes

J'ai un besoin similaire de travailler sur un grand projet C ++. Après avoir examiné certains outils, j'ai trouvé que id-utils est le meilleur choix car il est vraiment rapide Index de bâtiment et motifs de recherche.

Basé sur ID-Utils, j'ai fait un outil de ligne de commande et un plugin VIM pour résoudre mes besoins:

https://github.com/fcamel/gj

J'espère que cela aide.


0 commentaires