this post was submitted on 09 Nov 2023
1 points (100.0% liked)

Emacs

313 readers
3 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

Hi Everyone.

I'm using emacs and ripgrep to find what I'm looking for in a folder. Ripgrep shows the result of what I'm looking beautifully. Thats great. Every time I open a result, ripgrep buffer disappears.

Does anyone know how to open a temp buffer to view result then I can close it and go back to rg result again, so I don't have to type my search query.

Thanks.

top 8 comments
sorted by: hot top controversial new old
[–] habamax@alien.top 1 points 1 year ago

Using M-x grep RET with ripgrep:

;; ripgrep as grep
(setq grep-command "rg -nS --no-heading "
      grep-use-null-device nil)

Then M-g n or M-g p for the next/previous match. With (repeat-mode) consequent next/previous are just n and p.

https://asciinema.org/a/YuUtg8nswgaiBxrIm9drTXAtD

[–] varsderk@alien.top 1 points 1 year ago

I use consult-ripgrep to do the search, which shows me a live preview of the match candidates. If I want to make a buffer with all the results, I call embark-act then embark-export to dump the results into a buffer.

I detail this workflow (including editing the matches!) here on my blog, which should have more details if you're lost.

[–] xalixil@alien.top 1 points 1 year ago
[–] bravosierrasierra@alien.top 1 points 1 year ago

my solution: switch to any non-ripgrep buffer and navigate with next-error

   (defun bss/next-error-in-same-window ()
     (interactive)
     (let ((display-buffer-overriding-action '(display-buffer-same-window (inhibit-same-window . nil)))) (next-error)))
   (defun bss/previous-error-in-same-window ()
     (interactive)
     (let ((display-buffer-overriding-action '(display-buffer-same-window (inhibit-same-window . nil)))) (previous-error)))
   (global-set-key (kbd "s-[") 'bss/previous-error-in-same-window)
   (global-set-key (kbd "s-]") 'bss/next-error-in-same-window)
[–] hvis@alien.top 1 points 1 year ago (1 children)

Also try C-x p g for a similar UI.

Customize xref-search-program to make it use ripgrep under the covers.

[–] Kwisacks@alien.top 1 points 1 year ago

Which points to the grep command, so what really needs to be customize is grep-command no?

[–] gammarray@alien.top 1 points 1 year ago

I’m all about counsel or consult ripgrep, but deadgrep should get honorable mention too.

[–] zoechi@alien.top 1 points 1 year ago

I have a shortcut for ivy-occur in the search result to make it into a proper buffer. With [g] I can refresh the search