{"id":14982825,"url":"https://github.com/aloxaf/fzf-tab","last_synced_at":"2025-05-13T22:00:18.724Z","repository":{"id":37276597,"uuid":"230116426","full_name":"Aloxaf/fzf-tab","owner":"Aloxaf","description":"Replace zsh's default completion selection menu with fzf!","archived":false,"fork":false,"pushed_at":"2025-04-09T02:36:39.000Z","size":1056,"stargazers_count":3774,"open_issues_count":79,"forks_count":108,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-29T13:43:02.431Z","etag":null,"topics":["completion","fzf","shell","tmux","zsh","zsh-plugin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aloxaf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-25T14:50:04.000Z","updated_at":"2025-04-29T10:22:56.000Z","dependencies_parsed_at":"2024-01-03T04:17:05.975Z","dependency_job_id":"edf93ca3-a29e-4702-b1bc-bb13970e51c4","html_url":"https://github.com/Aloxaf/fzf-tab","commit_stats":{"total_commits":258,"total_committers":35,"mean_commits":7.371428571428571,"dds":"0.34883720930232553","last_synced_commit":"b6e1b22458a131f835c6fe65bdb88eb45093d2d2"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aloxaf%2Ffzf-tab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aloxaf%2Ffzf-tab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aloxaf%2Ffzf-tab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aloxaf%2Ffzf-tab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aloxaf","download_url":"https://codeload.github.com/Aloxaf/fzf-tab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036806,"owners_count":22003651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["completion","fzf","shell","tmux","zsh","zsh-plugin"],"created_at":"2024-09-24T14:06:12.722Z","updated_at":"2025-05-13T22:00:18.691Z","avatar_url":"https://github.com/Aloxaf.png","language":"Shell","readme":"# fzf-tab\n\n[![CI](https://github.com/Aloxaf/fzf-tab/workflows/ci/badge.svg)](https://github.com/Aloxaf/fzf-tab/actions?query=workflow%3Aci)\n[![GitHub license](https://img.shields.io/github/license/Aloxaf/fzf-tab)](https://github.com/Aloxaf/fzf-tab/blob/master/LICENSE)\n\nReplace zsh's default completion selection menu with fzf!\n\n[![asciicast](https://asciinema.org/a/293849.svg)](https://asciinema.org/a/293849)\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [fzf-tab](#fzf-tab)\n- [Install](#install)\n    - [Manual](#manual)\n    - [Antigen](#antigen)\n    - [Zinit](#zinit)\n    - [Oh-My-Zsh](#oh-my-zsh)\n    - [Prezto](#prezto)\n- [Usage](#usage)\n    - [Configure](#configure)\n    - [Tmux](#tmux)\n    - [Binary module](#binary-module)\n- [Difference from other plugins](#difference-from-other-plugins)\n- [Compatibility with other plugins](#compatibility-with-other-plugins)\n- [Related projects](#related-projects)\n\n\u003c!-- markdown-toc end --\u003e\n\n# Install\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e 1. make sure [fzf](https://github.com/junegunn/fzf)  is installed\n\u003e 2. fzf-tab needs to be loaded after `compinit`, but before plugins which will wrap widgets, such as [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) or [fast-syntax-highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting)\n\u003e 3. Completions should be configured before `compinit`, as stated in the [zsh-completions manual installation guide](https://github.com/zsh-users/zsh-completions#manual-installation).\n\n### Manual\n\nFirst, clone this repository.\n\n```zsh\ngit clone https://github.com/Aloxaf/fzf-tab ~/somewhere\n```\n\nThen add the following line to your `~/.zshrc`.\n\n```zsh\nautoload -U compinit; compinit\nsource ~/somewhere/fzf-tab.plugin.zsh\n```\n\n### Antigen\n\n```zsh\nantigen bundle Aloxaf/fzf-tab\n```\n\n### Zinit\n\n```zsh\nzinit light Aloxaf/fzf-tab\n```\n\n### Oh-My-Zsh\n\nClone this repository to your custom directory and then add `fzf-tab` to your plugin list.\n\n```zsh\ngit clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab\n```\n\n### Prezto\n\nClone this repository to your contrib directory and then add `fzf-tab` to your module list in `.zpreztorc`.\n\n```zsh\ngit clone https://github.com/Aloxaf/fzf-tab $ZPREZTODIR/contrib/fzf-tab\n```\n\n# Usage\n\nJust press \u003ckbd\u003eTab\u003c/kbd\u003e as usual~\n\nAvailable keybindings:\n\n- \u003ckbd\u003eCtrl\u003c/kdb\u003e+\u003ckdb\u003eSpace\u003c/kbd\u003e: select multiple results, can be configured by `fzf-bindings` tag\n\n- \u003ckbd\u003eF1\u003c/kbd\u003e/\u003ckbd\u003eF2\u003c/kbd\u003e: switch between groups, can be configured by `switch-group` tag\n\n- \u003ckbd\u003e/\u003c/kbd\u003e: trigger continuous completion (useful when completing a deep path), can be configured by `continuous-trigger` tag\n\nAvailable commands:\n\n- `disable-fzf-tab`: disable fzf-tab and fallback to compsys\n\n- `enable-fzf-tab`: enable fzf-tab\n\n- `toggle-fzf-tab`: toggle the state of fzf-tab. This is also a zle widget.\n\n## Configure\n\nA common configuration is:\n\n```zsh\n# disable sort when completing `git checkout`\nzstyle ':completion:*:git-checkout:*' sort false\n# set descriptions format to enable group support\n# NOTE: don't use escape sequences (like '%F{red}%d%f') here, fzf-tab will ignore them\nzstyle ':completion:*:descriptions' format '[%d]'\n# set list-colors to enable filename colorizing\nzstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}\n# force zsh not to show completion menu, which allows fzf-tab to capture the unambiguous prefix\nzstyle ':completion:*' menu no\n# preview directory's content with eza when completing cd\nzstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'\n# custom fzf flags\n# NOTE: fzf-tab does not follow FZF_DEFAULT_OPTS by default\nzstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2 --bind=tab:accept\n# To make fzf-tab follow FZF_DEFAULT_OPTS.\n# NOTE: This may lead to unexpected behavior since some flags break this plugin. See Aloxaf/fzf-tab#455.\nzstyle ':fzf-tab:*' use-fzf-default-opts yes\n# switch group using `\u003c` and `\u003e`\nzstyle ':fzf-tab:*' switch-group '\u003c' '\u003e'\n```\n\n## Tmux\n\nIf you're using tmux \u003e= 3.2, we provide a script `ftb-tmux-popup` to make full use of it's \"popup\" feature.\n\n```zsh\nzstyle ':fzf-tab:*' fzf-command ftb-tmux-popup\n```\n\nBTW, you can also use this script outside the fzf-tab.\n\n```zsh\nls | ftb-tmux-popup\n```\n\n[![asciicast](https://asciinema.org/a/367471.svg)](https://asciinema.org/a/367471)\n\nFor more information, please see [Wiki#Configuration](https://github.com/Aloxaf/fzf-tab/wiki/Configuration).\n\n## Binary module\n\nBy default, fzf-tab uses [zsh-ls-colors](https://github.com/xPMo/zsh-ls-colors) to parse and apply ZLS_COLORS if you have set the `list-colors` tag.\n\nHowever, it is a pure zsh script and is slow if you have too many files to colorize.\nfzf-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.\n\n# Difference from other plugins\n\nfzf-tab doesn't do \"complete\", it just shows you the results of the default completion system.\n\nSo it works EVERYWHERE (variables, function names, directory stack, in-word completion, etc.).\nAnd most of your configuration for default completion system is still valid.\n\n# Compatibility with other plugins\n\nSome plugins may also bind \"^I\" to their custom widget, like [fzf/shell/completion.zsh](https://github.com/junegunn/fzf/blob/master/shell/completion.zsh) or [ohmyzsh/lib/completion.zsh](https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/completion.zsh#L61-L73).\n\nBy 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.\n\nSo 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).\n\n# Related projects\n\n- https://github.com/lincheney/fzf-tab-completion (fzf tab completion for zsh, bash and GNU readline apps)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloxaf%2Ffzf-tab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faloxaf%2Ffzf-tab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloxaf%2Ffzf-tab/lists"}