forked from amix/vimrc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
20 changed files
with
993 additions
and
577 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
tags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
ack.vim is distributed under the same license terms as Vim itself, which you | ||
can find in full with `:help license` within Vim, or copied in full herein. | ||
|
||
Copyright (c) 2007-2015 Antoine Imbert <antoine.imbert+ackvim@gmail.com> | ||
and contributors. | ||
|
||
Maintainers may be contacted via GitHub Issues at: | ||
|
||
https://github.com/mileszs/ack.vim/issues | ||
|
||
|
||
VIM LICENSE | ||
|
||
I) There are no restrictions on distributing unmodified copies of Vim except | ||
that they must include this license text. You can also distribute | ||
unmodified parts of Vim, likewise unrestricted except that they must | ||
include this license text. You are also allowed to include executables | ||
that you made from the unmodified Vim sources, plus your own usage | ||
examples and Vim scripts. | ||
|
||
II) It is allowed to distribute a modified (or extended) version of Vim, | ||
including executables and/or source code, when the following four | ||
conditions are met: | ||
1) This license text must be included unmodified. | ||
2) The modified Vim must be distributed in one of the following five ways: | ||
a) If you make changes to Vim yourself, you must clearly describe in | ||
the distribution how to contact you. When the maintainer asks you | ||
(in any way) for a copy of the modified Vim you distributed, you | ||
must make your changes, including source code, available to the | ||
maintainer without fee. The maintainer reserves the right to | ||
include your changes in the official version of Vim. What the | ||
maintainer will do with your changes and under what license they | ||
will be distributed is negotiable. If there has been no negotiation | ||
then this license, or a later version, also applies to your changes. | ||
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this | ||
changes it will be announced in appropriate places (most likely | ||
vim.sf.net, www.vim.org and/or comp.editors). When it is completely | ||
impossible to contact the maintainer, the obligation to send him | ||
your changes ceases. Once the maintainer has confirmed that he has | ||
received your changes they will not have to be sent again. | ||
b) If you have received a modified Vim that was distributed as | ||
mentioned under a) you are allowed to further distribute it | ||
unmodified, as mentioned at I). If you make additional changes the | ||
text under a) applies to those changes. | ||
c) Provide all the changes, including source code, with every copy of | ||
the modified Vim you distribute. This may be done in the form of a | ||
context diff. You can choose what license to use for new code you | ||
add. The changes and their license must not restrict others from | ||
making their own changes to the official version of Vim. | ||
d) When you have a modified Vim which includes changes as mentioned | ||
under c), you can distribute it without the source code for the | ||
changes if the following three conditions are met: | ||
- The license that applies to the changes permits you to distribute | ||
the changes to the Vim maintainer without fee or restriction, and | ||
permits the Vim maintainer to include the changes in the official | ||
version of Vim without fee or restriction. | ||
- You keep the changes for at least three years after last | ||
distributing the corresponding modified Vim. When the maintainer | ||
or someone who you distributed the modified Vim to asks you (in | ||
any way) for the changes within this period, you must make them | ||
available to him. | ||
- You clearly describe in the distribution how to contact you. This | ||
contact information must remain valid for at least three years | ||
after last distributing the corresponding modified Vim, or as long | ||
as possible. | ||
e) When the GNU General Public License (GPL) applies to the changes, | ||
you can distribute the modified Vim under the GNU GPL version 2 or | ||
any later version. | ||
3) A message must be added, at least in the output of the ":version" | ||
command and in the intro screen, such that the user of the modified Vim | ||
is able to see that it was modified. When distributing as mentioned | ||
under 2)e) adding the message is only required for as far as this does | ||
not conflict with the license used for the changes. | ||
4) The contact information as required under 2)a) and 2)d) must not be | ||
removed or changed, except that the person himself can make | ||
corrections. | ||
|
||
III) If you distribute a modified version of Vim, you are encouraged to use | ||
the Vim license for your changes and make them available to the | ||
maintainer, including the source code. The preferred way to do this is | ||
by e-mail or by uploading the files to a server and e-mailing the URL. | ||
If the number of changes is small (e.g., a modified Makefile) e-mailing a | ||
context diff will do. The e-mail address to be used is | ||
<maintainer@vim.org> | ||
|
||
IV) It is not allowed to remove this license from the distribution of the Vim | ||
sources, parts of it or from a modified version. You may use this | ||
license for previous Vim releases instead of the license that they came | ||
with, at your option. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
# ack.vim | ||
|
||
Run your favorite search tool from Vim, with an enhanced results list. | ||
|
||
This plugin was designed as a Vim frontend for the Perl module [App::Ack]. Ack | ||
can be used as a replacement for 99% of the uses of _grep_. The plugin allows | ||
you to run ack from Vim, and shows the results in a split window. | ||
|
||
But here's a little secret for the Vim-seasoned: it's just a light wrapper for | ||
Vim's [grepprg] and the [quickfix] window for match results. This makes it easy | ||
to integrate with your own Vim configuration and use existing knowledge of core | ||
features. It also means the plugin is flexible to use with other search tools. | ||
|
||
[App::Ack]: http://search.cpan.org/~petdance/ack/ack | ||
[grepprg]: http://vimdoc.sourceforge.net/htmldoc/options.html#'grepprg' | ||
[quickfix]: http://vimdoc.sourceforge.net/htmldoc/quickfix.html#quickfix | ||
|
||
## Installation | ||
|
||
### Ack | ||
|
||
You will need ack (>= 2.0), of course. To install it follow the | ||
[manual](http://beyondgrep.com/install/). | ||
|
||
### The Plugin | ||
|
||
It is recommended to use one of the popular plugin managers for Vim. There are | ||
many and you probably already have a preferred one, but a few examples for your | ||
copy-and-paste convenience: | ||
|
||
#### Pathogen | ||
|
||
$ git clone https://github.com/mileszs/ack.vim.git ~/.vim/bundle/ack.vim | ||
|
||
#### Vundle | ||
|
||
```vim | ||
Plugin 'mileszs/ack.vim' | ||
``` | ||
|
||
#### NeoBundle | ||
|
||
```vim | ||
NeoBundle 'mileszs/ack.vim' | ||
``` | ||
|
||
#### Manual (not recommended) | ||
|
||
[Download][releases] the plugin and extract it in `~/.vim/` (or | ||
`%PROGRAMFILES%/Vim/vimfiles` on Windows). | ||
|
||
[zipball]: https://github.com/mileszs/ack.vim/archive/master.zip | ||
|
||
## Usage | ||
|
||
:Ack [options] {pattern} [{directories}] | ||
|
||
Search recursively in `{directories}` (which defaults to the current directory) | ||
for the `{pattern}`. | ||
|
||
Files containing the search term will be listed in the quickfix 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 `:help Ack` | ||
after installing, or [`doc/ack.txt`][doc] in the repo, for more information.) | ||
|
||
For more ack help see [ack documentation](http://beyondgrep.com/documentation/). | ||
|
||
[doc]: https://github.com/mileszs/ack.vim/blob/master/doc/ack.txt | ||
|
||
### Keyboard Shortcuts | ||
|
||
The quickfix results window is augmented with these convenience mappings: | ||
|
||
? a quick summary of these keys, repeat to close | ||
o to open (same as Enter) | ||
O to open and close the 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 without moving to it | ||
h to open in horizontal split | ||
H to open in horizontal split, keeping focus on the results | ||
v to open in vertical split | ||
gv to open in vertical split, keeping focus on the results | ||
q to close the quickfix window | ||
|
||
### Gotchas | ||
|
||
Some characters have special meaning, and need to be escaped in your search | ||
pattern. For instance, `#`. You need to escape it with `:Ack '\\\#define | ||
foo'` to search for '#define foo'. See [issue #5]. | ||
|
||
[issue #5]: https://github.com/mileszs/ack.vim/issues/5 | ||
|
||
## Possibly FAQ | ||
|
||
#### Can I use `ag` ([The Silver Searcher]) with this? | ||
|
||
Absolutely, and probably other tools if their output is similar or you can | ||
write a pattern match for it--just set `g:ackprg`. If you like, you can fall | ||
back to Ack in case you use your vimrc on a system without Ag available: | ||
|
||
```vim | ||
if executable('ag') | ||
let g:ackprg = 'ag --vimgrep' | ||
endif | ||
``` | ||
|
||
Since Ack is quite portable you might check a copy of it into your dotfiles | ||
repository in `~/bin` so you'll nearly always have it available. | ||
|
||
#### What's the difference from ag.vim? | ||
|
||
Well... not a lot really. | ||
|
||
Present maintainer, yours truly, [kind of wishes they never forked][sadface], | ||
contributes to both, and wouldn't mind seeing them merged again. ag.vim got a | ||
nice code clean-up (which ack.vim is now hopefully getting), and ack.vim picked | ||
up a few features that haven't made their way to ag.vim, like `:AckWindow`, | ||
optional background search execution with [vim-dispatch], and auto-previewing. | ||
|
||
#### I don't want to jump to the first result automatically. #### | ||
|
||
Use `:Ack!`, with bang. If you want this behavior most of the time, you might | ||
like an abbreviation or mapping in your personal config, something like these: | ||
|
||
```vim | ||
cnoreabbrev Ack Ack! | ||
nnoremap <Leader>a :Ack!<Space> | ||
``` | ||
|
||
Most of the `:[L]Ack*` commands support this. Note that this behavior follows | ||
the convention of Vim's built-in `:grep` and `:make` commands. | ||
|
||
[The Silver Searcher]: https://github.com/ggreer/the_silver_searcher | ||
[sadface]: https://github.com/mileszs/ack.vim/commit/d97090fb502d40229e6976dfec0e06636ba227d5#commitcomment-5771145 | ||
|
||
## Changelog | ||
|
||
Please see [the Github releases page][releases]. | ||
|
||
## Credits | ||
|
||
This plugin is derived from Antoine Imbert's blog post [Ack and Vim | ||
Integration][] (in particular, the function in the update to the post). [Miles | ||
Sterrett][mileszs] packaged it up as a plugin and documented it in Vim's help | ||
format, and since then [many contributors][contributors] have submitted | ||
enhancements and fixes. | ||
|
||
And of course, where would we be without [Ack]. And, you know, Vim. | ||
|
||
[Ack and Vim Integration]: http://blog.ant0ine.com/typepad/2007/03/ack-and-vim-integration.html | ||
[mileszs]: https://github.com/mileszs | ||
[contributors]: https://github.com/mileszs/ack.vim/graphs/contributors | ||
[Ack]: http://beyondgrep.com/ | ||
|
||
[vim-dispatch]: https://github.com/tpope/vim-dispatch | ||
[releases]: https://github.com/mileszs/ack.vim/releases |
Oops, something went wrong.