Skip to content

paretje/async-grepper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Use your favorite grep tool (ag, ack, git grep, ripgrep, pt, sift, findstr, grep) to start an asynchronous search. Matches will be added to the quickfix list as they are found.

This plugin works with Vim and Neovim. It's based on vim-grepper, but used asyncrun.vim to execute the grepper commands, and append the results asynchronously to the quickfix list.

Disclaimer: using the location list, appending to an existing quickfix list and stopping search after a certain number of results have been returned are currently unsupported. PR's welcome.


  • Prompt: Use :Grepper to open a prompt, enter your query, optionally cycle through the list of tools, fire up the search.
  • Operator: Use the current visual selection to pre-fill the prompt or start searching right away.
  • Commands: :Grepper supports a wide range of flags which makes it extremely flexible. All supported tools come with their own command for convenience: :GrepperGit, :GrepperAg, and so on. They're all built atop of :Grepper.
  • Custom tools: Changing the behaviour of the default tools is very easy. And so is adding new tools.

If you like vim-grepper, you will love async-grepper.

Documentation

This README is only the tip of the iceberg. Make sure to read :h grepper and the wiki to learn about every feature.

Example configurations be be found here.

The truth is out there.

Installation

Use your favorite plugin manager, e.g. vim-plug:

Plug 'skywind3000/asyncrun.vim'
Plug 'paretje/asyc-grepper'

If you prefer lazy loading:

Plug 'skywind3000/asyncrun.vim', { 'on': 'AsyncRun' }
Plug 'mhinz/vim-grepper', { 'on': ['Grepper', '<plug>(GrepperOperator)'] }

Demo

General usage:

vim-grepper

Grepping only files currently loaded in Vim:

vim-grepper

Feedback

If you like this plugin, star it! It's a great way of getting feedback. The same goes for reporting issues or feature requests.