What is fzf?
fzf is a general-purpose command-line fuzzy finder written in Go by Junegunn Choi. It's an interactive filter program for any kind of list - files, command history, processes, hostnames, bookmarks, git commits, and more. With over 72k GitHub stars, it has become an essential tool for command-line productivity.
โก Key Features of fzf
๐ฆ Portable & Fast
Single binary distribution with blazingly fast performance. Instantly processes millions of items with optimized Go implementation.
๐ ๏ธ Extremely Versatile
Fully customizable via event-action binding mechanism. Works with any kind of list input - files, processes, commands, etc.
๐ Shell Integration
Built-in integration with bash, zsh, and fish. Includes key bindings for file search (Ctrl-T), command history (Ctrl-R), and directory navigation (Alt-C).
๐ผ๏ธ Preview Window
Real-time preview of files, images, and content. Supports syntax highlighting, image display, and custom preview commands.
๐จ Highly Customizable
Multiple display modes, color schemes, layout options, and style presets. Theme playground available for interactive customization.
๐ Editor Integration
Vim and Neovim plugins available. Seamless integration with popular editors and development workflows.
apt upgrade keeps you on the latest version.
๐ฆ Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update๐ There is an always-free mirror. deb-free.griffo.io serves packages free forever โ no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries Ghostty, Oh My Posh and Zed; fzf is not one of them, so the repository above is the only way to get it today โ ask and it can be enrolled.
Step 2: Install fzf
# Install latest fzf
sudo apt install fzf
# Verify installation
fzf --version# Install latest fzf
apt install fzf
# Verify installation
fzf --versionStep 3: Set Up Shell Integration
# For bash users
echo 'eval "$(fzf --bash)"' >> ~/.bashrc
# For zsh users
echo 'source <(fzf --zsh)' >> ~/.zshrc
# For fish users
echo 'fzf --fish | source' >> ~/.config/fish/config.fish
# Reload shell
source ~/.bashrc # or ~/.zshrc๐ฏ Basic Usage Examples
Interactive file finder:
# Find and edit files
vim $(fzf)
# Find files with preview
fzf --preview 'cat {}'
# Find files with syntax highlighting
fzf --preview 'bat --color=always {}'Shell integration keybindings:
# Ctrl-T: Find files and directories
# Type any command, then press Ctrl-T to insert selected files
# Ctrl-R: Search command history
# Press Ctrl-R to search and select from command history
# Alt-C: Change directory
# Press Alt-C to fuzzy find and cd into directoriesAdvanced usage:
# Search processes and kill
ps aux | fzf | awk '{print $2}' | xargs kill
# Search git commits
git log --oneline | fzf | awk '{print $1}' | xargs git show
# Interactive ripgrep
rg --color=always --line-number . | fzf --ansi
# Multi-select mode
find . -type f | fzf -m๐ง Tool Integrations
fzf works perfectly with other modern command-line tools:
- fd: Use as file source for respecting .gitignore
- ripgrep: Interactive grep with live reload
- bat: Syntax-highlighted file previews
- eza: Enhanced file listing with fzf filtering
- zoxide: Smart directory jumping with fuzzy search
๐ Why Choose deb.griffo.io?
- Official Ubuntu: Available but often outdated versions
- Manual Installation: Requires Go toolchain or manual binary management
- deb.griffo.io: Latest version with automatic updates
- โ Latest Features: Get newest fzf features and performance improvements
- โ No Manual Setup: Pre-built binaries, no Go compilation needed
- โ Automatic Updates: Packages updated within hours of upstream releases
- โ Complete Package: Includes shell integration scripts and documentation
- โ Multi-Distribution: Works on Jammy and Noble
- โ Easy Maintenance: Standard apt commands for updates
๐ฆ Package Build Repository
The Ubuntu packages are automatically built and maintained in this GitHub repository:
- ๐ fzf-debian - Latest release builds
๐ Related Packages
Also available from deb.griffo.io:
- eza - Modern ls replacement (great with fzf)
- Yazi File Manager - Integrates with fzf for file searching
- zoxide - Smart cd command (works with fzf)
๐ Support This Project
If this repository saves you time and effort, please consider supporting it!