They always say a man is only as good as his tools, and that remains true in the world of computing. As I gain more experience in the terminal, I've discovered some powerful utilities which have vastly improved my productivity and developer experience.

Better Shell History Lookup

The first program I would like to direct your attention to is fzf. fzf is a fuzzy finder, meaning it doesn't search for exact matches, but instead ranks results based on how similar they are to the search term. A particularly useful feature of fzf that I use every day is it's shell integration. If you use bash, this is as simple as adding the following line to your ~/.bashrc:

eval "$(fzf --bash)"

In most terminals, Ctrl-R allows you to search your shell history, showing all commands you have executed in the past. This isn't ideal, as the built-in history search only ever shows one result, and also requires an exact match. With fzf however, you can see multiple matching results and can easily select the one you want.

In a similar vein, pressing Alt-c allows you to quickly search for a directory and cd into it. This is an incredible time saver, as you can quickly jump to any directory with just a handful of keystrokes.

Data Visualization

I tend to do a lot of work with data in different formats, but most commonly in CSV or JSON.
To work with these formats, I use csvlens and fx respectively. Both support vim-style keybindings as well, so I can take advantage of my muscle memory to quickly navigate the data. csvlens provides an interactive table view of CSV files with features like sorting, filtering, and search - far superior to scrolling through raw data in a text editor. Meanwhile, fx transforms JSON exploration from a tedious task into an interactive experience, allowing you to navigate nested structures, apply transformations, and extract specific values with ease. Both support vim-style keybindings as well, so I can take advantage of my muscle memory to quickly navigate the data.

Markdown

glow is an excellent markdown viewer written in Go. In fact, I used glow while writing this article, via a :terminal window in my NeoVim editor. Beyond simple file viewing, glow can also browse and search your local markdown files, and even fetch and display markdown content from URLs, making it invaluable for quickly reviewing project documentation without leaving the terminal.

Conclusion

These four tools have become essential parts of my daily workflow. fzf makes navigating my shell history and filesystem effortless, csvlens and fx turn data exploration into a pleasant experience, and glow keeps me in the terminal when reviewing documentation. The best part? They all integrate seamlessly with existing workflows without requiring you to learn entirely new paradigms. If you spend significant time in the terminal, I highly recommend giving these utilities a try.