Git Product home page Git Product logo

deadgrep's Introduction

Deadgrep: use ripgrep from Emacs ☠️

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

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

Navigating results:

Key Action
RET Visit the result, file or push button at point
o Visit the result in another window
n and p Move between search hits
M-n and M-p Move between file headers

The commands deadgrep-forward and deadgrep-backward are also available to move between buttons as well as search hits.

Starting/stopping a search:

Key Action
S Change the search term
T Cycle through available search types: string, words, regexp
C Cycle through case sensitivity types: smart, sensitive, ignore
F Cycle through file modes: all, type, glob
I Switch to incremental search, re-running on every keystroke
D Change the search directory
^ Re-run the search in the parent directory
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 search commands from starting automatically.

Additional interactive commands

Name Action
imenu Move between files in a results buffer.
deadgrep-kill-all-buffers Kill all open deadgrep buffers.
deadgrep-debug In a results buffer, view the rg command, output and environment used.

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.

Easy Debugging

The easiest way to debug search results is to review the actual rg command executed.

Fortunately, the deadgrep-debug function makes it easy:

  • Move to the deadgrep results buffer.
  • Type M-x deadgrep-debug.
  • Strike enter, and the debug buffer will appear.
  • Move to the deadgrep debug buffer.

Study the results to review the rg command string and other debugging information to assist you.

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 VCS repository, 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.

Beta Features

You can now edit files directly from results buffers with M-x deadgrep-edit-mode.

It is currently in beta. Alternatively, package wgrep added support for editing deadgrep buffers in April 2023 via wgrep-deadgrep. (One feature unlocked that way is, e.g., the ability to delete a line in edit mode via C-d)

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.

Why the name?

The name "deadgrep" is a pun on "R.I.P. grep", and ripgrep.el was already taken.

R.I.P wasn't actually the intention of the name "ripgrep" (see their FAQ), but deadgrep is easy to remember and type.

deadgrep's People

Contributors

antifuchs avatar divinedominion avatar fuco1 avatar gregsexton avatar grettke avatar iquiw avatar jdufresne avatar jokem59 avatar kidd avatar laurynas-biveinis avatar maw avatar mernst avatar pierre-rouleau avatar travisjeffery avatar wilfred avatar wyuenho avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.