Hacker News new | ask | show | jobs
by robenkleene 1848 days ago
I agree with this so much, in particular I want to highlight these tools from the list, just because I love them so much:

# `rg` / Ripgrep (`grep` replacement)

`rg` uses `ack`-semantics (i.e., automatically searches files recursively).

Here's what my search workflow looks like, this is the main way I program:

1. `rg something`

2. Too many hits? `rg -l something` to just list matching filenames

3. Hopefully based on that we can narrow enough using a glob: `rg something -g "*.m"`. Otherwise write a regular expression to get more specific matches.

4. After I have exactly the set of matches I'm interested in, I pipe the results to a text editor that can interpret grep-style output (e.g., quickly jump between results, I usually use Vim).

The key here is that the command-line excels at iteratively refining a command based on output, and that's exactly what we're looking for to use search effectively. `rg` provides a more ergonomic UI than `grep` (recursive, automatically ignoring version control files, including ignored), which is really important if this is the main command that you're running all-day, which it is for me.

# `fd` (`find` replacement)

This advantages here are the similar as for `rg`, quickly being able to recursively find a file by name, a problem that similarly benefits from iteratively refining a command.

# `bat` (`cat` replacement)

`bat` is just the best way I've found to quickly view a file from the command-line, it adds syntax highlighting and line numbers, which are both invaluable.*

1 comments

ugrep is better than rg.
It would help if you added why it's better to your comment