Ack - Better than Grep
On a StackOverflow question about favorite Vim plugins, I learned about Ack,
a replacement for grep that's smarter about searching source trees.
Ack is written in Perl.
The built-in :vimgrep is rather slow.
It seems to have some Vim-specific overhead,
such as creating swap files and executing BufRead autocmds.
Ack is noticeably faster,
though somewhat slower than GNU grep.
Which would you rather type to search a tree,
ignoring the .svn and .git subtrees?
$ ack -i -l foobar
$ grep --exclude='*.svn*' --exclude='*.git*' -i -l -r foobar .
The ack takes 6 seconds to search 4500 files, while the grep completes in 2.
This does not count the time that I spent trying to figure out
the correct syntax and argument quoting for --exclude.
The help says both --regexp=PATTERN and --exclude=PATTERN,
but the latter is a glob (file wildcard pattern).
On Windows, I wrapped ack with pl2bat.