ack

Homepage: https://github.com/leoliu/ack-el

Author: Leo Liu

Updated:

Summary

Interface to ack-like tools

Commentary

This package was originally written to provide an interface to ack
http://beyondgrep.com -- a tool like grep, designed for programmers
with large trees of heterogeneous source code.  It builds on
standard packages `compile.el' and `ansi-color.el' and lets you
seamlessly run `ack' with its large set of options.

Later it was enhanced to also support ack-like tools such as the
silver search (ag) and git/hg/bzr grep facilities.  So, while the
name persists, actually using `ack' program is merely a suggestion.

The basic usage pattern starts with `M-x ack', which will compose a
suitable command-line in the minibuffer.  A good variable to
customize early on is `ack-defaults-function', which controls how
this command can be modulated by one of more `C-u''s to control
this process.

If `ack-defaults-function' is `ack-quickgrep-defaults':

+  Type `M-x ack' to start searching immediately for the thing
   at point from the current project root.
+  Type `C-u M-x ack' to do the same but get a chance to edit the line.
+  Type `C-u C-u M-x ack' to interactively choose a directory to
   search from.

If `ack-defaults-function' is `ack-legacy-defaults':

+  Type `M-x ack' and provide a pattern to search.
+  Type `C-u M-x ack' to search from current project root.
+  Type `C-u C-u M-x ack' to interactively choose a directory to
   search.

Read the docstrings of `ack-quickgrep-defaults' and
`ack-legacy-defaults' for finer details.

Regardless of what function you put in `ack-defaults-function',
when editing the minibuffer the following key bindings may be
useful:

+  `M-I' inserts a template for case-insensitive file name search
+  `M-G' inserts a template for `git grep', `hg grep' or `bzr grep'
+  `M-Y' inserts the symbol at point from the window before entering
   the minibuffer
+  `TAB' completes ack options

Dependencies

Reverse dependencies