fzf
Back to Terminal
fzfIntermediate10 min

fzf Shell History and Process Management: Fuzzy Search Everything in Your Shell

fzf for Shell History & Processes

Supercharge your shell with fzf integration for command history, process management, file previews, and directory jumping. Stop typing, start searching.

fzf turns any list into a fuzzy-searchable interface. Pipe anything into it — files, git branches, command history — and filter interactively.

By the end of this 10 min guide, you'll have a working fzf setup and practical fzf workflows you can use immediately.

Keybindings & Shell Integration

Install fzf:

brew install fzf
Tip: Verify the installation with fzf --version or fzf -V after installing.

Fuzzy Command History Search

Enable shell keybindings so fzf works everywhere. Set FZF_DEFAULT_COMMAND to use ripgrep for file listing (faster, respects .gitignore).

Here's a foundational configuration to start with:

# Shell integration
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_COMMAND="rg --files --hidden"
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border"

Process Management with fzf

With fzf configured, these fzf-specific workflows will save you time every day:

Pro tip: Don't try to adopt everything at once. Start with Ctrl-T fuzzy-find files from any directory and add more as it becomes habit.

Directory & File Jumping

Once you're comfortable with fzf basics, these advanced techniques will transform your fzf workflow:

Binding & Shell Compatibility Issues

Here are the most common fzf issues and how to fix them:

Shell Productivity Boost

Congratulations — you now have a solid fzf foundation. Here's where to go next:

← PreviousKarabiner Complex Modifications: Layers, Hyper Keys, and Conditional MappingsNext →BetterTouchTool Remote and Custom Widgets: Control Your Mac from iPhone and iPad