Homepage: https://github.com/leoliu/ack-el
Author: Leo Liu
Updated:
Interface to ack-like tools
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