Wer programmiert, möglicherweise auch noch in verschiedenen Sprachen, der kennt das: “ich hab da ein Stück Code, wo lag das noch gleich?”. Dafür die IDE hochfahren? Weil man nur schnell in der shell was nachsehen möchte? Dafür gibt es ja grep
. Das ist allerdings ein generisches Textwerkzeug und nicht spezialisiert auf Quellcode. Aber wie immer existierte in den Weiten des Internets bereits die Lösung, noch bevor ich die Frage kannte. ;-) Die Lösung lautet ack
und liegt hier: http://beyondgrep.com/
Das ist ein Sourcecode-Suchtool, mit dem sich Ergebnisse erzielen lassen, die zwar auch in grep, find, bash etc. möglich sind, allerdings mit erheblich mehr Aufwand. Um beispielsweise alle Python-Dateien unterhalb eines bestimmten Ordners nach dem Ausdruck dkdk zu durchsuchen, reicht ein
ack -ri "if __name__" ~/sourcecode/github/requests/ *.py
]
Das Schöne dabei ist, dass ack Verzeichnisse von Versionsverwaltungen wie svn oder git ignoriert, portabel ist (Perl, es gibt ack sogar als “single-file” ohne Abhängigkeiten) und sich auch gleich um die Hervorhebung der Suchergebnisse kümmert. Sie haben keine Zeit zum Installieren und wollen erstmal sehen, was ack noch kann? Kein Problem, hier ist ein fünfminütiger Lightning-Talk von Cameron Pope.