[HN Gopher] Ripgrep 14 Released
___________________________________________________________________
Ripgrep 14 Released
Author : timf
Score : 116 points
Date : 2023-11-26 20:21 UTC (2 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| skunkworker wrote:
| Ripgrep is probably my favorite command line tool (which replaces
| older solutions). It's just so quick to search a folder for a
| specific line of text in a file.
| coldtea wrote:
| Same here... the program I use most aside from my editor.
|
| In fact my current editor, VS Code, also does searching powered
| by rg behind the scenes: /Applications/Visual\
| Studio\ Code.app/Contents/Resources/app/node_modules.asar.unpac
| ked/vscode-ripgrep/bin/rg
| goalieca wrote:
| I'm not an rg wizard by any means, but it is one of the few
| utilities that I end up using daily for one reason or another.
| dharmab wrote:
| Ripgrep is an essential tool for navigating unfamiliar codebases.
| I also use it to quickly search many repositories for specific
| symbols when I research the consumers of libraries and APIs.
| ashton314 wrote:
| If you are an Emacs user like me, you _must_ try out the consult-
| ripgrep command from the peerless Consult [1] package by Daniel
| Mendler: search your whole project with ripgrep and get a live
| preview of every matching candidate all inside of Emacs!
|
| [1]: https://github.com/minad/consult
| Barrin92 wrote:
| am a big fan of the whole consult/vertico/embark stack of emacs
| plugins. They're fantastic.
| oakpond wrote:
| En garde! If you're a Vim user, fzf.vim [1] can do this. :)
|
| [1]: https://github.com/junegunn/fzf.vim
| bombela wrote:
| And if you want interactive support, try
| https://github.com/bombela/fzf.vim.rgfd
|
| (shameless plug)
| nerdponx wrote:
| If you don't need live updating output, you can just set
| grepprg and get results in the quickfix list with :grep[!]
| (or the location list with :lgrep[!]). if
| executable('rg') let &grepprg = 'rg --vimgrep $*'
| endif
|
| No need for Fzf/Telescope/Denite/DDU or anything else in that
| case.
|
| See:
|
| https://neovim.io/doc/user/quickfix.html#%3Agrep
|
| https://neovim.io/doc/user/options.html#'grepprg'
| a-dub wrote:
| used to do that with glimpse when i worked with very large
| codebases 23 years ago!
|
| big fan of ag, ripgrep and burntsushi's rust work!
| TacticalCoder wrote:
| And for those who are also on Emacs but on the
| Swiper/avy/ivy/counsel side of the fence, there's _counsel-rg_.
|
| I use it since before _burntsushi_ (who 's here on HN btw)'s
| ripgrep was shipped with Debian stable!
|
| > search your whole project with ripgrep and get a live preview
| of every matching candidate all inside of Emacs
|
| I'm sometimes searching not just my project but my entire user
| dir or my entire shared drive, from Emacs. A NVMe PCIe 4.0 SSD
| (I'm using a WD SN850X which someone here recommended to me
| when I assembled my PC) is _that_ fast and _ripgrep_ too.
| tgv wrote:
| What's the improvement this time? Translate DFAs to microcode?
| burntsushi wrote:
| https://blog.burntsushi.net/regex-internals/
| grudg3 wrote:
| rg is great, I use it a lot. Recently I have also used
| [ambr](https://github.com/dalance/amber) which can do both search
| (ambs) and replace (ambr) recursively in your codebase. The only
| problem as of yet is that it does not support globbing so I
| cannot filter on certain filetypes only.
| coldtea wrote:
| You could use "find" (or even better, "fd") to find specific
| filetypes, then pass it to amber via xargs or some similar way.
| mirashii wrote:
| I'll throw in sd as a nice sed/find-and-replace tool. Using fd
| + xargs + sd is a pretty good workflow if a shell glob isn't
| good enough to target the files you want.
| https://github.com/chmln/sd
| cstrahan wrote:
| I'll also throw in Leah Neukirche 's xe as a better
| alternative to xargs: https://github.com/leahneukirchen/xe
| ForkMeOnTinder wrote:
| I wanted to like sd but it doesn't support my main use case
| of recursive search/replace. Imagine every time you wanted to
| grep some files you had to build a find+xargs+rg pipeline...
| it just takes me out of the flow too much. I'm glad people
| are posting other options here, I'm looking forward to trying
| them.
|
| https://github.com/chmln/sd/issues/62
| nicoburns wrote:
| https://github.com/facebookincubator/fastmod is also great for
| the replace usecase.
| coldtea wrote:
| I don't seem to get the hyperlinks with either Terminal or iTerm.
|
| P.S. OK found it: it can't show hyperlinks when you explicitly
| pass a file name to search (for internal implementation reasons,
| might be fixed later). It works when you search in directories
| etc.
| lelandbatey wrote:
| The notes state that the headline feature is "hyperlink support".
| However, the notes don't seem to really explain what that means.
| Can someone explain a bit more about what that feature does/is?
| What's a use case?
| burntsushi wrote:
| It creates links in the output. You click them. It opens the
| file. That's pretty much it.
| kzrdude wrote:
| Terminals (some terminals) support hyperlinks and it creates
| clickable links. For example ls -l --hyperlink=auto If you
| terminal supports it, you can click the names.
|
| See here for more info:
| https://github.com/Alhadis/OSC8-Adoption/
| coldtea wrote:
| So, when you search for "foo" in mydir/, rg can find the term
| foo inside different places in a number of files, and then
| print the results like: mydir/myfile.java
| 15: return foo; 78: System.out.println(foo); 123:
| // TODO: change foo to bar
|
| Hyperlink support means that the line numbers (15, 78, 123) are
| clickable, and will open your favorite editor to that file and
| that line number.
|
| That's if your terminal supports hyperlinks, or has hyperlink
| support enabled - most do. Depending on the terminal app it
| might be control/cmd click, or option-click to open the
| hyperlink.
|
| Note (this got me while trying): hyperlinks are not emitted
| when you search inside a specific file directly, e.g. "rg foo
| myfile.py".
| lelandbatey wrote:
| I'm fascinated! I've been living with and authoring CLI tools
| for about a decade now and I didn't know that there's
| widespread support for additional attributes on text besides
| styling (color, italics, underline, etc) in common terminal
| emulators. What a cool thing!
| burntsushi wrote:
| For the single file case, if you pass --with-filename then it
| should work.
| citruscomputing wrote:
| Sibling comments have explained, but the keyword to search to
| learn more is "OSC-8 hyperlinks"
| andrewstuart wrote:
| I wish Jetbrains would integrate ripgrep into Pycharm as a native
| feature.
| leonheld wrote:
| I'm very thankful for ripgrep, ag and fzf.
| piinbinary wrote:
| I'm still sad that --sort-files makes ripgrep run in single-core
| mode. (I know you can't make --sort-files _free_ in multi-core
| mode, but it would still be faster than single-core)
|
| https://github.com/BurntSushi/ripgrep/issues/152
| forgotusername6 wrote:
| The release notes use the word "headling" twice instead of
| presumably "headline". I had to look it up in case this was a new
| usage of this archaic word.
| burntsushi wrote:
| Ah nice catch! I actually meant to say "headlining."
___________________________________________________________________
(page generated 2023-11-26 23:00 UTC)