If there’s one mantra I like to leave people with, it’s Use Good Tools! … or, as I like to phrase it differently sometimes, Use the right tool for the job!
Stop clinging to old tools. It’s hard, since you have all that muscle memory, and you don’t want to lose what is sometimes hard-won knowledge, but … you still have to let it go. Sometimes, you have no idea how much better it could be!
Here is a list I came up with; I split it up into tools I’ve been using for years now, and ones that are more recent ones, since while the latter are still useful, I can’t vouch for them with the same “D’oh, you should obviously be using this!” level of enthusiasm.
Long-time use (highly recommend):
zsh
or fish
: Just pick one, doesn’t matter. If you can’t pick: _just go with Oh-my-zsh_rtags
: if you use C++ inside Emacs, make your life bettertmux
: are you still opening multiple terminal windows? Don’t.mosh
: are you still re-ssh-ing every time you open your laptop or VPN in? Don’t.fzf
: anytime you need to pick options at the command-line; at the very least, the only way you should be referencing command history.helm
: If you use Emacs, are you still typing more than two or three characters per-operation? Don’t.magit
: If you use Emacs, this should be the only way you interact with git
.ag
: Stop using grep
! (or ripgrep
instead, I hear it’s as good)jq
: If you work with json output, duh.htop
: Stop using top
.Recent discoveries (cautiously recommend):
fd
: dead-simple replacement for find
exa
: prettier-looking replacement for ls
peco
: similar to fzf
?tig
: for when you want to use git
outside Emacslnav
: getting around log filesbat
: context-aware replacement for cat
and less
pydf
: dead-simple replacement for df