Fzf Tab

Replace zsh's default completion selection menu with fzf!
Alternatives To Fzf Tab
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Fzf Tab2,025
12 days ago56mitShell
Replace zsh's default completion selection menu with fzf!
Omnisharp Vim1,541
16 days ago24mitVim Script
Vim omnicompletion (intellisense) and more for C#
a year ago26mitShell
Ef-🐟-ient fish keybindings for fzf
3 months ago4mitShell
extrakto for tmux - quickly select, copy/insert/complete text without a mouse
Fzf Marks430
a month ago10mitShell
Plugin to manage bookmarks in bash and zsh
Fzf Tab Completion374
12 days ago10gpl-3.0Shell
Tab completion using fzf
Kubectl Fzf368
6 months ago13October 04, 2022mitGo
A fast kubectl autocompletion with fzf
a year ago6gpl-3.0Shell
A caching wrapper for the 1Password CLI
2 months ago2Shell
a year ago14April 05, 20222mitGo
:rocket: General purpose context-aware zsh completion engine powered by fuzzy finder.
Alternatives To Fzf Tab
Select To Compare

Alternative Project Comparisons


CI GitHub license

Replace zsh's default completion selection menu with fzf!


Table of Contents


NOTE: fzf-tab needs to be loaded after compinit, but before plugins which will wrap widgets, such as zsh-autosuggestions or fast-syntax-highlighting!!

NOTE 2: fzf-tab ALSO needs fzf installed, otherwise it cannot work!


First, clone this repository.

git clone https://github.com/Aloxaf/fzf-tab ~/somewhere

Then add the following line to your ~/.zshrc.

source ~/somewhere/fzf-tab.plugin.zsh


antigen bundle Aloxaf/fzf-tab


zinit light Aloxaf/fzf-tab


Clone this repository to your custom directory and then add fzf-tab to your plugin list.

git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab


Clone this repository to your contrib directory and then add fzf-tab to your module list in .zpreztorc.

git clone https://github.com/Aloxaf/fzf-tab $ZPREZTODIR/contrib/fzf-tab


Just press Tab as usual~

Available keybindings:

  • Ctrl+Space: select multiple results, can be configured by fzf-bindings tag

  • F1/F2: switch between groups, can be configured by switch-group tag

  • /: trigger continuous completion (useful when completing a deep path), can be configured by continuous-trigger tag

Available commands:

  • disable-fzf-tab: disable fzf-tab and fallback to compsys

  • enable-fzf-tab: enable fzf-tab

  • toggle-fzf-tab: toggle the state of fzf-tab. This is also a zle widget.


A common configuration is:

# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
# set descriptions format to enable group support
zstyle ':completion:*:descriptions' format '[%d]'
# set list-colors to enable filename colorizing
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# preview directory's content with exa when completing cd
zstyle ':fzf-tab:complete💿*' fzf-preview 'exa -1 --color=always $realpath'
# switch group using `,` and `.`
zstyle ':fzf-tab:*' switch-group ',' '.'

For more information, please see Wiki#Configuration.

Binary module

By default, fzf-tab uses zsh-ls-colors to parse and apply ZLS_COLORS if you have set the list-colors tag.

However, it is a pure zsh script and is slow if you have too many files to colorize. fzf-tab is shipped with a binary module to speed up this process. You can build it with build-fzf-tab-module, then it will be enabled automatically.

Difference from other plugins

fzf-tab doesn't do "complete", it just shows you the results of the default completion system.

So it works EVERYWHERE (variables, function names, directory stack, in-word completion, etc.). And most of your configuration for default completion system is still valid.

Compatibility with other plugins

Some plugins may also bind "^I" to their custom widget, like fzf/shell/completion.zsh or ohmyzsh/lib/completion.zsh.

By default, fzf-tab will call the widget previously bound to "^I" to get the completion list. So there is no problem in most cases, unless fzf-tab is initialized before a plugin which doesn't handle the previous binding properly.

So if you find your fzf-tab doesn't work properly, please make sure it is the last plugin to bind "^I" (If you don't know what I mean, just put it to the end of your plugin list).

Related projects

Popular Fzf Projects
Popular Completion Projects
Popular Applications Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.