Ranked in these QuestionsQuestion Ranking
Pro Really fast
It is written in C. It is up to 10 times faster than ack.
Pro Ignores files in .gitignore by default
It ignores file patterns from your
.ignore. This can be a bit buggy though.
Pro Simple syntax
Pro Supports PCRE RegExp
Supports RegEx like look-ahead/behind (only fixed length lookbehind however).
Pro No need to manage another config file or learn a new config syntax
Everything is managed with command line args, meaning you can store commonly used options through
.bashrc aliases, bash scripts, and/or autocompletion. There is no config file format to learn or extra dotfiles to manage.
Con You have to remember commonly used options and add them as flags everytime
You are not able to define options in a config file as there is none. (You have to use a shell alias or wrapper script to get your default options.)
Con Cannot add custom file types
All file types ag is able to search for are baked into the executable. There is no way to add new ones neither via command line nor via (the not existing) config file. The only way is a pull request on github and waiting for a new release.