fzf tmux, Editor Integration, Troubleshooting, and Performance

Use fzf with tmux and editors, and fix common issues involving shell integration, source commands, and large repositories.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

tmux, Vim, and Neovim integration

Run fzf inside tmux and launch editors from fuzzy selections.

Run fzf through fzf-tmux

Open the finder in a tmux popup or split-aware wrapper.

bashANYtmuxpopupfzf-tmux
bash
fzf-tmux -p 80%,60%

A popular way to use fzf inside tmux without disturbing the current pane layout.

Open selected files in Vim or Neovim

Pass chosen files directly to your editor.

bashANYnvimvimeditor
bash
fd --type f | fzf -m | xargs -r nvim

Efficient for opening several project files at once.

Use fzf-git.sh for Git object pickers

Load Git-focused helper bindings built on fzf.

bashANYgitfzf-git.shintegration
bash
source ~/.fzf-git.sh

The companion script provides ready-made selectors for branches, tags, hashes, and more.

Troubleshooting and performance

Fix common shell integration issues and make large searches faster.

Inspect your default source command

Print the configured default command before running fzf.

bashANYdebugdefault-command
bash
printf '%s
' "$FZF_DEFAULT_COMMAND"

A good first step when file pickers return unexpected entries.

Prefer fd over find for speed

Switch your source command to fd for large trees.

bashANYperformancefd
bash
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'

Performance often depends more on the source command than on fzf itself.

Ignore hidden or VCS files unless needed

Reduce list size to improve responsiveness.

bashANYperformanceignorenode_modules
bash
fd --type f --exclude .git --exclude node_modules | fzf

Pruning noisy trees can dramatically improve interactive performance.

Avoid broken matching on colored input

Use --ansi only when the input really contains ANSI color codes.

bashANYansiperformancedebug
bash
git status --short | fzf

Passing --ansi unnecessarily can slow matching and complicate field parsing.

Remember shell functions are not external commands

Use standalone commands for child processes spawned by fzf.

textANYshellfunctionstroubleshooting
text
# Child processes spawned by fzf cannot call a shell function unless you export or inline it.

This explains why some custom shell functions work in the current shell but fail inside preview or reload commands.

Recommended next

No recommendations yet.