Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Using ripgrep in Emacs using helm-ag (Spacemacs)


Ripgrep is a fast search tool like grep. It's mostly a drop-in replacement for ag, also know as the Silver Searcher.

helm-ag is a fantastic package for Emacs that allows you to display search results in a buffer. You can also jump to locations of matches. Despite the name, helm-ag works with ripgrep (rg) as well as with ag.


  1. Install ripgrep

  2. Make Spacemacs use helm-project-do-ag directly when pressing SPC / without preselecting the symbol under the cursor.

    Type SPC f e d to bring up ~/.spacemacs.

    (defun dotspacemacs/user-config ()
      ;; ....
      (evil-leader/set-key "/" 'spacemacs/helm-project-do-ag))
  3. Force ripgrep as search tool

    SPC SPC customize-set-variable

    Select variable helm-ag-base-command

    Set value to rg --vimgrep --no-heading --smart-case


SPC / should allow you to search in the current project.

You can prefix patterns with options

-G*.cljs -w time - search for the word "time" in all .cljs files

-tclojure time - search for "time" in all .{clj,cljs,cljc} files

uno\ due\ tre - search for the string "uno duo tre"

-C5 foo - search for "foo" but show 5 lines of context before and after the match

(?:^|[^\w-])time(?:[^\w-]|$) - search for lisp-word "time", i.e. search for the full word "time" while considering "-" to be a word characer

Copy link

sbseltzer commented Dec 10, 2019

Does anyone know if there's a way to specify the rg [PATH ...] segment? I work on a lot of projects where directories outside the current project are useful to search in addition to the project and have not been able to find anything.

Copy link

Gentlemen, how can I reduce my search with SPC-/ to the current directory in Treemacs only - no the entire project?


Copy link

demalworkshop commented Feb 19, 2021

If I restart spacemacs, I have to re-run step 3. I tried putting (setq helm-ag-base-command "rg --vimgrep --no-heading --smart-case") in my dotspacemacs/user-config() in .spacemacs, but that does not help. What can I do to set the variable helm-ag-base-command to the desired value automatically upon restarting spacemacs?

Copy link

Why would you replace ag with rg?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment