Some tools you adopt with great ceremony, read the manual, watch a talk, agonise over config. And some just slide into your habits so quietly that a month later you can't remember how you worked without them. fzf is firmly the second sort. It's a fuzzy finder, which sounds underwhelming until you realise that almost everything in a shell is a list, and fzf makes every one of those lists instantly searchable.
The core idea is daft in its simplicity. You pipe any list of lines into fzf, it gives you an interactive prompt, you type a few characters from anywhere in the thing you want, and it filters to the matches as you go. Hit enter, it prints your choice. That's it. The power is entirely in what you wire it up to.
The three bindings that did it
Once you install it and let it set up the shell integration, you get three keybindings, and these are what actually changed my habits.
Ctrl-R rewrites history search. The old reverse-i-search was fine until you mistyped one character and had to start again. Now I hit Ctrl-R, type a fragment of any command I ran last week, and pick it out of a live-filtered list. I genuinely no longer remember long commands; I remember a word that was in them.
Ctrl-T drops a fuzzy file picker into whatever you're typing. Need a path as an argument? Hit it, fuzzy-find the file, and it's pasted in. No more ls, squint, copy, paste. And Alt-C does the same for directories but cds you straight there, which has more or less replaced the dance of tabbing through directory names.
Building your own
The thing that turned a nice utility into something I rely on is that it composes with anything that emits lines.
# jump to any git branch
git branch | fzf | xargs git switch
# kill a process by fuzzy-searching the name
ps aux | fzf | awk '{print $2}' | xargs kill
Once that pattern clicks, you start seeing fzf-shaped problems everywhere. Pick a container, pick a kubectl context, pick a file from git status to add. Any time I'd otherwise scroll a list and copy a value by hand, there's a one-liner that does it faster.
It hasn't replaced anything dramatic. I still use the same shell, the same commands. What it changed is the friction. The little tax you pay dozens of times a day to find the right thing in a list of things has more or less gone, and the cumulative effect over a working week is bigger than I'd have believed from a tool this small. If you've not tried it, give it an afternoon. The afternoon pays itself back inside a week.