Skip to content

Configuring fuzzy completion

Junegunn Choi edited this page Mar 28, 2024 · 7 revisions

Changing the layout

See https://github.com/junegunn/fzf/wiki/Configuring-shell-key-bindings#changing-the-layout

zsh

Dedicated completion key

Instead of using TAB key with a trigger sequence (**<TAB>), you can assign a dedicated key for fuzzy completion while retaining the default behavior of TAB key.

Add the following lines after eval "$(fzf --zsh)" (or source ~/.fzf.zsh)

export FZF_COMPLETION_TRIGGER=''
bindkey '^T' fzf-completion
bindkey '^I' $fzf_default_completion

Then CTRL-T will trigger context-aware fuzzy completion.

For bash, see https://github.com/junegunn/fzf/issues/1804.

Caveats

setopt vi

setopt vi resets TAB key binding, so unless you've assigned a dedicated key, fuzzy completion will become unavailable.

> bindkey '^I'
"^I" fzf-completion

> setopt vi
> bindkey '^I'
"^I" expand-or-complete

So make sure that .fzf.zsh (or completion.zsh) is sourced after setopt vi.