fast, friendly searching with ripgrep and Emacs
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
test
.gitignore
.travis.yml
CHANGELOG.md
Cask
README.md
deadgrep.el

README.md

deadgrep: use ripgrep from Emacs

Deadgrep is the fast, beautiful text search that your Emacs deserves.

Build Status Coverage Status MELPA

screenshot

Table of Contents

Usage

Installation

  1. Install ripgrep. You need version 0.8 or later.

  2. Install deadgrep from MELPA (do M-x package-install RET deadgrep within Emacs 25.1 or later), or copy it into your ~/.emacs.d.

  3. (Optional) add deadgrep to a convenient shortcut. I like F5.

(global-set-key (kbd "<f5>") #'deadgrep)

Keybindings

Key Action
RET Visit the result, file or push button at point
o Visit the result in another window
n and p Move between results or buttons
g Re-run the search
TAB Expand/collapse results for a file
C-c C-k Stop a running search
C-u A prefix argument prevents searches from starting automatically.

Minibuffer

You use the minibuffer to enter a new search term.

You can also reuse a previous search term with M-p in the minibuffer. To edit the default search term, use M-n.

Features

Super Fast

Deadgrep uses ripgrep for extremely fast text searches.

If you change your search settings, deadgrep will immediately re-run your search.

Context Aware

Deadgrep works hard to minimise your keystrokes.

Search term: If the region is active, deadgrep uses that.

Search directory: If your current file is in a git project, deadgrep uses that for your search directory.

Regexp and case sensitivity options: Deadgrep re-uses whatever settings you used in your last search.

Globbing and file types: Deadgrep suggests file types and globbing options that match the file you started the search from.

Host: If you're editing a remote file with Tramp, deadgrep will search the remote machine. This requires rg to be installed on that machine.

Easy Filtering

Didn't get the results you wanted? It's easy to change the search term, search type, or search directory, directly from the results buffer. Just push the relevant button.

screenshot

Polish

Deadgrep uses spinners to give you feedback on whether your search has finished.

screenshot

It highlights regexp syntax according to the syntax accepted by rg.

screenshot

When navigating to a line that matched, the relevant part of the line is temporarily highlighted.

screenshot

You can collapse and expand files with TAB.

screenshot

Deadgrep handles minified files robustly.

screenshot

You can always jump to exactly the position that point is on, even when searching files that contain tab characters. You can also navigate to the file itself from the file headings.

Alternative Projects

I believe that deadgrep is the best tool for doing Emacs text searches, but there are some other great tools out there. See ALTERNATIVES for a discussion.