Ack! Effortlessly search your codebase
My favorite commandline tool for efficiently searching a codebase is Ack. It shows file:line and highlights the matches in the output. When refactoring a solution it is a trusty companion to quickly find all uses of a method, for instance.
It is easy to install with DarwinPorts:
This puts the ack
command in your PATH
and you’re ready to go.
Basic usage of Ack
A recurring task is to find all uses of a method or class in a project. As this is simply a substring search, you invoke Ack with:
and ack quickly starts outputting all the places where this is used. If you add a -i
, the search becomes case-insensitive. Use ack --help
to see all the many available options.
A bit of configuration goes a long way
Ack is fast because it skips uninteresting files. It is meant for searching for text, and skips version control folders, logfiles, images, and a lot of other stuff you are not interested in when searching through your source-code. However, the backside is you need to configure things once to have support for all your various kinds of source-code.
Adding this small bit of config means .haml
, .sass
, and Cucumber .feature
files are also included when searching.
With this in place, you are ready to rock HAML/SSS + Cucumber projects.
Know any extra must-have options or shortcuts I have left out?
Update: added link to official Ack homepage.
Hi, I'm Laust Rud Jacobsen, an experienced webapp developer specializing in Elixir, Ruby and PostgreSQL-based solutions. You can hire me to build awesome stuff for you. If you have any questions or comments, reach out at @laustrud or privately at work@valuestream.io.