Ein Tool sie zu finden und alle zu binden...

written by Martin HĂ€cker on

... auf die Shell zu ziehen und ins Highlighting zu ziehen. :) (Sorry, ich muss dringend mal wieder Herr der Ringe anschauen)

Mir geht es um grep, der Urgroßvater aller Projektweiten Suchmöglichkeiten. Das kann viel - aber nicht alles.

Zum Beispiel ist es nicht besonders einfach in einem Projekt zu suchen dass SVN fĂŒr die Versionskontrolle einsetzt. Grep besteht nĂ€mlich darauf dass es unbedingt bei -r auch in .svn Verzeichnissen suchen will. Und das beste: es gibt zwar eine Option --exclude - die funktioniert aber nur auf File-Basis. Das heißt man kann damit keine Verzeichnisse (wie z.B. .svn) ausschließen.

Doh.

Die Entwickler sagen dazu dass man doch lieber find . mumbojumbomagic | grep muster benutzen soll. Tja.

Enter Ack. Die Lösung aller Probleme. :)

  • Das Tool sucht standardmĂ€ĂŸig rekursiv - d.h. man muss nicht stĂ€ndig -r angeben.
  • Es ignoriert standardmĂ€ĂŸig .svn .hg .git etc. Verzeichnisse - daher muss man nicht stĂ€ndig irrelevante Resultate ignorieren.
  • Man kann mit switches wie --python oder --objc nur in Dateien dieses Typs suchen.
  • Man hat vollstĂ€ndige UnterstĂŒtzung fĂŒr Perls Regular Expressions auf der Kommandozeile (das Tool ist in Perl geschrieben)
  • Man kann das Tool supereinfach in ~/.ackrc konfigurieren.

Hier meine .ackrc:

$ cat ~./ackrc
--type-set=nib=.nib
--type-add=objc=.mm
--ignore-dir=build

Schick ne?

Hier zu finden.