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
.
-
Install ripgrep
-
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))
-
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
@jokem59, at this point I'm not using the hack anymore. I've also switched away from Spacemacs because problems like this were too hard to fix for me in Spacemacs.
helm-ag
(orhelm-projectile-ag
, I forget which) has support for rg in its own right. There's alsohelm-rg
, confusingly :-)