# fzf | Junegunn Choi | Knowledge Base | Instagit

:cherry_blossom: A command-line fuzzy finder

GitHub Stars: 78.2k

Repository: https://github.com/junegunn/fzf

---

## Articles

### [How to Use fzf with tmux Popup Windows via the --tmux Option](/junegunn/fzf/how-can-i-use-fzf-with-tmux-popup-windows-via-the-tmux-option)

Learn how to use fzf with tmux popup windows using the --tmux option. Open fzf seamlessly within a tmux popup and control its size and position for an enhanced workflow.

- Tags: how-to-guide
- Published: 2026-03-01

### [fzf `--sync` Option Explained: When to Use Synchronous Search](/junegunn/fzf/what-is-the-sync-option-and-when-should-synchronous-search-be-used)

Unlock efficient multi-stage filtering with fzf --sync search. Learn when to use this blocking option for deterministic execution and ensure your workflows run perfectly.

- Tags: deep-dive
- Published: 2026-03-01

### [How fzf Handles Word Wrapping with the --wrap Option: Implementation Deep Dive](/junegunn/fzf/how-does-fzf-handle-word-wrapping-with-the-wrap-option)

Discover how fzf implements word wrapping with the --wrap option. Explore the code in src/util/chars.go to understand its line and word break logic for efficient display.

- Tags: deep-dive
- Published: 2026-03-01

### [Understanding the fzf `--become` Action: How It Differs from Shell Piping](/junegunn/fzf/what-is-the-become-action-and-how-does-it-differ-from-shell-piping)

Learn how fzf's --become action replaces processes using syscall.Exec, differing from shell piping by preserving terminal state and avoiding quoting issues. Understand this powerful fzf feature.

- Tags: deep-dive
- Published: 2026-03-01

### [How to Implement Custom Fuzzy Completion for Specific Commands in fzf](/junegunn/fzf/how-can-i-implement-custom-fuzzy-completion-for-specific-commands)

Implement custom fuzzy completion for any command in fzf using _fzf_setup_completion. Define custom generators for specialized inputs like Docker or Git.

- Tags: how-to-guide
- Published: 2026-03-01

### [How fzf Implements Multi-Select with the -m Option and TAB Key](/junegunn/fzf/how-does-fzf-handle-multi-select-with-the-m-option-and-tab-key)

Learn how fzf implements multi-select using the -m option and TAB key to efficiently toggle selection state while navigating lists in your terminal.

- Tags: internals
- Published: 2026-03-01

### [Understanding the fzf Walker Option: Built-in File Traversal Guide](/junegunn/fzf/what-is-the-purpose-of-the-walker-option-and-how-does-it-traverse-files)

Learn how the fzf walker option enables built-in file traversal for efficient command-line fuzzy finding. Explore its purpose and file generation.

- Tags: deep-dive
- Published: 2026-03-01

### [How to Customize fzf's Color Scheme with the --color Option](/junegunn/fzf/how-can-i-customize-fzf-colors-with-the-color-option)

Learn how to customize fzf's color scheme using the --color option. Easily set base themes or fine-tune individual UI elements for a personalized look.

- Tags: how-to-guide
- Published: 2026-03-01

### [fzf --style Presets: default, minimal, and full Configuration Guide](/junegunn/fzf/what-are-the-available-style-presets-and-how-do-they-differ)

Explore fzf --style presets default minimal and full to customize border visibility info line placement and cursor highlighting with simple flags

- Tags: deep-dive
- Published: 2026-03-01

### [How the Fuzzy Completion System Works in Bash and Zsh: A Deep Dive into fzf](/junegunn/fzf/how-does-the-fuzzy-completion-system-work-in-bash-and-zsh-shells)

Discover how the fzf fuzzy completion system enhances Bash and Zsh tab-completion by launching an interactive finder for quick file selection. Learn its core mechanics.

- Tags: deep-dive
- Published: 2026-03-01

### [fzf `--height` vs `--tmux` Display Modes: Key Differences Explained](/junegunn/fzf/what-is-the-difference-between-height-and-tmux-display-modes)

Understand the fzf --height and --tmux display modes. Learn how --height renders fzf below the cursor and --tmux creates a tmux popup for a better workflow.

- Tags: deep-dive
- Published: 2026-03-01

### [How to Use fzf as an Interactive Selector for ripgrep: Complete Integration Guide](/junegunn/fzf/how-can-i-use-fzf-as-an-interactive-selector-for-ripgrep-integration)

Integrate fzf with ripgrep for interactive file searching. Learn how to use fzf's reload action to trigger ripgrep on keystrokes and open results directly in your editor.

- Tags: how-to-guide
- Published: 2026-03-01

### [fzf `--disabled` Option: Complete Guide to External Search Workflows](/junegunn/fzf/what-is-the-disabled-option-and-when-should-it-be-used)

Learn how the fzf --disabled option turns fzf into a passive UI for external search tools like ripgrep. Integrate advanced search into your workflows with this guide.

- Tags: deep-dive
- Published: 2026-03-01

### [How fzf Handles Unicode Normalization with the `--literal` Option](/junegunn/fzf/how-does-fzf-handle-unicode-normalization-with-the-literal-option)

Discover how fzf's --literal option disables Unicode normalization for exact code-point matching. Find what you need without character equivalence.

- Tags: internals
- Published: 2026-03-01

### [Performance Implications of fzf `--nth` and `--with-nth` Options: A Deep Dive](/junegunn/fzf/what-are-the-performance-implications-of-nth-and-with-nth-options)

Understand fzf --nth and --with-nth performance. Learn how --nth speeds up searches by limiting tokenization, while --with-nth impacts display but not matching. Optimize your fzf experience.

- Tags: performance
- Published: 2026-03-01

### [How to Implement Dynamic List Reloading in fzf: A Complete Guide](/junegunn/fzf/how-can-i-implement-dynamic-list-reloading-with-the-reload-action)

Master dynamic list reloading in fzf using the reload action. This guide shows how to update your fzf candidate list seamlessly without restarting the UI.

- Tags: how-to-guide
- Published: 2026-03-01

### [How fzf Preview Window Rendering Works Across Different Terminal Emulators](/junegunn/fzf/how-does-fzfs-preview-window-rendering-work-with-different-terminal-emulators)

Discover how fzf preview window rendering works across diverse terminal emulators. Learn about pane creation, output drawing, and escape sequence forwarding.

- Tags: internals
- Published: 2026-03-01

### [fzf execute vs execute-silent vs become: Command Execution Actions Explained](/junegunn/fzf/what-is-the-difference-between-execute-execute-silent-and-become-actions)

Understand fzf execute vs execute-silent vs become actions. Learn how each command execution method impacts your fzf workflow and UI responsiveness.

- Tags: internals
- Published: 2026-03-01

### [How the fzf `--bind` Action System Works for Custom Key Bindings](/junegunn/fzf/how-does-the-bind-action-system-work-for-custom-key-bindings)

Master fzf --bind custom key bindings. Understand the three stage pipeline parsing key chords and decoding actions into executable handlers for powerful customization.

- Tags: internals
- Published: 2026-03-01

### [Optimize fzf Performance with Large Input Lists: Chunking, Caching, and Parallelism Strategies](/junegunn/fzf/how-can-i-optimize-fzf-performance-with-large-input-lists)

Speed up fzf with large lists. Learn chunking, caching, and parallelism strategies. Tune --threads --no-sort --no-cache for millions of lines.

- Tags: performance
- Published: 2026-03-01

### [How to Use the fzf --tiebreak Option to Control Result Sorting](/junegunn/fzf/what-is-the-purpose-of-the-tiebreak-option-and-how-does-it-affect-sorting)

Master fzf --tiebreak to refine search results. Learn how secondary sorting criteria like length and chunk improve your fzf experience and control result order effectively.

- Tags: how-to-guide
- Published: 2026-03-01

### [How fzf Handles ANSI Color Codes with the `--ansi` Option](/junegunn/fzf/how-does-fzf-handle-ansi-color-codes-in-input-with-ansi-option)

Learn how fzf uses the --ansi option to parse and preserve ANSI color codes in your input for vibrant fuzzy matching and rendering. Enhance your command line.

- Tags: internals
- Published: 2026-03-01

### [Understanding fzf --scheme: Differences Between default, path, and history](/junegunn/fzf/what-is-the-difference-between-scheme-default-scheme-path-and-scheme-history)

Discover the differences between fzf --scheme default, path, and history. Learn how each option impacts fuzzy finding, word boundaries, and sorting for optimal results.

- Tags: deep-dive
- Published: 2026-03-01

### [How fzf's Fuzzy Matching Algorithm Works Internally: V1 vs V2 Implementation](/junegunn/fzf/how-does-fzfs-fuzzy-matching-algorithm-work-internally)

Explore fzf's fuzzy matching algorithm V1 vs V2. Learn how fzf uses greedy linear scan and dynamic programming for fast, optimal pattern matching.

- Tags: internals
- Published: 2026-03-01

