131 lines
4 KiB
Markdown
131 lines
4 KiB
Markdown
# ack.vim
|
|
|
|
This plugin is a front for the Perl module
|
|
[App::Ack](http://search.cpan.org/~petdance/ack/ack). Ack can be used as a
|
|
replacement for 99% of the uses of _grep_. This plugin will allow you to run
|
|
ack from vim, and shows the results in a split window.
|
|
|
|
## Installation
|
|
|
|
### Ack
|
|
|
|
You will need the ack(>= 2.0), of course, to install it follow the
|
|
[manual](http://beyondgrep.com/install/)
|
|
|
|
### The Plugin
|
|
|
|
To install it is recommended to use one of the popular package managers for Vim,
|
|
rather than installing by drag and drop all required files into your `.vim` folder.
|
|
|
|
#### Manual (not recommended)
|
|
|
|
Just
|
|
[download](https://github.com/mileszs/ack.vim/archive/kb-improve-readme.zip) the
|
|
plugin and put it in your `~/.vim/`(or `%PROGRAMFILES%/Vim/vimfiles` on windows)
|
|
|
|
#### Vundle
|
|
|
|
Bundle 'mileszs/ack.vim'
|
|
|
|
#### NeoBundle
|
|
|
|
NeoBundle 'mileszs/ack.vim'
|
|
|
|
## Usage
|
|
|
|
:Ack [options] {pattern} [{directories}]
|
|
|
|
Search recursively in {directory} (which defaults to the current directory) for
|
|
the {pattern}.
|
|
|
|
Files containing the search term will be listed in the split window, along with
|
|
the line number of the occurrence, once for each occurrence. [Enter] on a line
|
|
in this window will open the file, and place the cursor on the matching line.
|
|
|
|
Just like where you use :grep, :grepadd, :lgrep, and :lgrepadd, you can use
|
|
`:Ack`, `:AckAdd`, `:LAck`, and `:LAckAdd` respectively.
|
|
(See `doc/ack.txt`, or install and `:h Ack` for more information.)
|
|
|
|
For more ack options see
|
|
[ack documentation](http://beyondgrep.com/documentation/)
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
In the quickfix window, you can use:
|
|
|
|
o to open (same as enter)
|
|
O to open and close quickfix window
|
|
go to preview file (open but maintain focus on ack.vim results)
|
|
t to open in new tab
|
|
T to open in new tab silently
|
|
h to open in horizontal split
|
|
H to open in horizontal split silently
|
|
v to open in vertical split
|
|
gv to open in vertical split silently
|
|
q to close the quickfix window
|
|
|
|
This Vim plugin is derived (and by derived, I mean copied, essentially) from
|
|
Antoine Imbert's blog post
|
|
[Ack and Vim Integration](http://blog.ant0ine.com/typepad/2007/03/ack-and-vim-integration.html)
|
|
(in particular, the function at the bottom of the post). I added a help file that
|
|
provides just enough reference to get you going. I also highly recommend you
|
|
check out the docs for the Perl script 'ack', for obvious reasons:
|
|
[ack - grep-like text finder](http://beyondgrep.com/).
|
|
|
|
### Gotchas
|
|
|
|
Some characters have special meaning, and need to be escaped your search
|
|
pattern. For instance, '#'. You have to escape it like this `:Ack '\\\#define
|
|
foo'` to search for '#define foo'. (From blueyed in issue #5.)
|
|
|
|
## Changelog
|
|
|
|
### 1.0
|
|
|
|
* Remove support to ack 1.x
|
|
* Start to use a Changelog
|
|
* Use `autoload` directory to define functions, instead of `plugin`.
|
|
* Add option to auto fold the results(`g:ack_autofold_results`)
|
|
* Improve documentation, list all options and shortcuts
|
|
* Improve highlight option to work when passes directories or use quotes.
|
|
* Add g:ack_mapping
|
|
* Add g:ack_default_options
|
|
* Add a help toggle `?`(like NERDTree)
|
|
|
|
### 1.0.1
|
|
|
|
* Fixes #124. Bug with `g:ack_autofold_results`
|
|
|
|
### 1.0.2
|
|
|
|
* Add compatibility with [vim-dispatch](https://github.com/tpope/vim-dispatch)
|
|
|
|
### 1.0.3
|
|
|
|
* Fixes #127. Use `&l:hlsearch` instead of `v:hlsearch` to keep compatibility
|
|
with versions that does not have this variable.
|
|
|
|
### 1.0.4
|
|
|
|
* Fixes #128. Always apply mappings, even when using vim-dispatch.
|
|
|
|
### 1.0.5
|
|
|
|
* Fixes #128. Fixes the `errorformat` for ack when using vim-dispatch.
|
|
* Do not use vim-dispatch by default. To use vim-dispath must set
|
|
`g:ack_use_dispatch`
|
|
|
|
### 1.0.6
|
|
|
|
* Fixes highlight function to work when user passes options. Ex.: Ack -i test
|
|
Thank's @mannih. (#131, #134)
|
|
|
|
### 1.0.7
|
|
|
|
* Fixes highlight function to work when passes more than one option, or options
|
|
with double dashes(--option) Thank's to @MiguelLatorre and @mannih
|
|
|
|
### 1.0.8
|
|
|
|
* Fixes (again) highlight, now using negative look behind.
|
|
* Change mappings `o` and `O` to behave as documented
|