Ich stelle fest, dass ich immer wieder dieselbe Codebasis greife. Obwohl es großartig funktioniert, dauert jeder Befehl ungefähr 10 Sekunden, daher denke ich darüber nach, wie ich ihn schneller machen kann.
So kann grep
eine Art von Index verwenden? Ich verstehe, dass ein Index bei komplizierten regulären Ausdrücken wahrscheinlich nicht hilft, aber ich verwende meistens sehr einfache Muster. Gibt es für diesen Fall einen Indexer?
EDIT: Ich kenne mich mit ctags und dergleichen aus, möchte aber eine Volltextsuche durchführen.
Antworten:
Was ist mit cscope ? Passt das zu Ihren Schuhen?
Ermöglicht die Suche nach:
quelle
Volltextindizierung
Es gibt Werkzeuge , wie recoll , Swish-e und Sphinx , aber man müsste prüfen , ob sie die Art von Suchkriterien unterstützen , die Sie benötigen.
Recoll
Swish-e
Sphinx
grep
Ich bin überrascht, dass grep so langsam ist, wie Sie es beschreiben. Können Sie die Anzahl der durchsuchten Dateien reduzieren? Wenn ich zum Beispiel nur die Quelldateien nach einer ausführbaren Datei durchsuchen muss (von vielen in einem Projekt), gebe ich grep die Namen von einem Befehl ein, der die Quelldateien für dieses Programm auflistet:
sources
ist ein Programm, das für meine Entwicklungsumgebung spezifisch ist, aber Sie haben möglicherweise etwas Äquivalentes (oder können es erstellen).Ich gehe davon aus, dass Sie offensichtliche Techniken wie ausprobiert haben
Ich habe einen Vorschlag gelesen , dass die
-P
Option "Aktuell"grep
die Suche erheblich beschleunigen kann.quelle
grep, nein. Es gibt jedoch mehrere Programme, die Indizes verwenden und auf die Codebasis abzielen.
ctags
(Es gibt eine Version, die mit vim bereitgestellt wird)etags
(für die Verwendung mit Emacs vorgesehen)global
(unabhängiger vom Editor) sind die, an die ich gerade denke, aber es gibt wahrscheinlich andere.quelle
Sie können Ihre Codebasis auf eine RAM-Disk kopieren.
quelle
Wenn Sie eine Volltextsuchmaschine verwenden möchten, verwenden Sie eine:
quelle
Nein, das glaube ich nicht. Aber es kann eine einfache Lösung geben: Versuchen Sie es mit ack. Ich denke, wenn Sie ihm eine Chance geben, werden Sie es deutlich schneller als grep finden, kürzere Suchzeichenfolgen benötigen, um bessere Suchergebnisse zu erzielen, und viele wünschenswerte Funktionen bei Verwendung der gleichen Befehlsschalter. Eine Sache, die es schneller macht (obwohl nicht indiziert), ist, dass es viel mehr von den Dingen ignoriert, die Sie nicht suchen möchten. Es ist in Perl geschrieben und verwendet die regulären Ausdrücke von Perl (und verfügt daher auch über Mac- und Windows-Ports).
http://betterthangrep.com/
quelle