Project Icon

fzf-tab

使用 fzf 优化 Zsh 命令行补全的插件

fzf-tab 是一个 Zsh 插件,它利用 fzf 替代默认补全菜单,提供多项选择、组切换和连续补全等功能。该插件展示默认补全系统的结果,适用范围广泛,并保留大部分原有配置。fzf-tab 支持多种插件管理器,还提供二进制模块以提升性能。通过优化命令行补全体验,fzf-tab 为用户带来更高效的 Zsh 使用体验。

fzf-tab

CI GitHub license

使用fzf替换zsh的默认补全选择菜单!

asciicast

目录

安装

[!重要]

  1. 确保已安装fzf
  2. fzf-tab需要在compinit之后加载,但要在会包装小部件的插件之前加载,如zsh-autosuggestionsfast-syntax-highlighting
  3. 补全应该在compinit之前配置,正如zsh-completions手动安装指南中所述。

手动安装

首先,克隆此仓库。

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

然后在您的~/.zshrc中添加以下行。

autoload -U compinit; compinit
source ~/somewhere/fzf-tab.plugin.zsh

Antigen

antigen bundle Aloxaf/fzf-tab

Zinit

zinit light Aloxaf/fzf-tab

Oh-My-Zsh

将此仓库克隆到您的自定义目录,然后将fzf-tab添加到您的插件列表中。

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

Prezto

将此仓库克隆到您的contrib目录,然后在.zpreztorc中将fzf-tab添加到您的模块列表中。

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

使用

像往常一样按Tab键即可~

可用的按键绑定:

  • Ctrl+Space:选择多个结果,可通过fzf-bindings标签配置

  • F1/F2:在组之间切换,可通过switch-group标签配置

  • /:触发连续补全(在补全深层路径时很有用),可通过continuous-trigger标签配置

可用的命令:

  • disable-fzf-tab:禁用fzf-tab并回退到compsys

  • enable-fzf-tab:启用fzf-tab

  • toggle-fzf-tab:切换fzf-tab的状态。这也是一个zle小部件。

配置

常见的配置如下:

# 在补全`git checkout`时禁用排序
zstyle ':completion:*:git-checkout:*' sort false
# 设置描述格式以启用组支持
# 注意:这里不要使用转义序列,fzf-tab会忽略它们
zstyle ':completion:*:descriptions' format '[%d]'
# 设置list-colors以启用文件名着色
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# 强制zsh不显示补全菜单,这允许fzf-tab捕获无歧义的前缀
zstyle ':completion:*' menu no
# 在补全cd时使用eza预览目录内容
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
# 使用`<`和`>`切换组
zstyle ':fzf-tab:*' switch-group '<' '>'

Tmux

如果您使用的是tmux >= 3.2,我们提供了一个脚本ftb-tmux-popup来充分利用其"弹出"功能。

zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup

顺便说一下,您也可以在fzf-tab之外使用这个脚本。

ls | ftb-tmux-popup

asciicast

更多信息,请参见Wiki#Configuration

二进制模块

默认情况下,如果您设置了list-colors标签,fzf-tab会使用zsh-ls-colors来解析和应用ZLS_COLORS。

然而,这是一个纯zsh脚本,如果您有太多文件需要着色,它会变得很慢。 fzf-tab附带了一个二进制模块来加速这个过程。您可以使用build-fzf-tab-module构建它,然后它会自动启用。

与其他插件的区别

fzf-tab不执行"补全",它只是向您展示默认补全系统的结果。

因此它可以在任何地方工作(变量、函数名、目录栈、单词内补全等)。 而且您对默认补全系统的大部分配置仍然有效。

与其他插件的兼容性

一些插件可能也会将"^I"绑定到它们的自定义小部件,比如fzf/shell/completion.zshohmyzsh/lib/completion.zsh

默认情况下,fzf-tab会调用之前绑定到"^I"的小部件来获取补全列表。所以在大多数情况下没有问题,除非fzf-tab在一个未正确处理先前绑定的插件之前初始化。

因此,如果您发现fzf-tab无法正常工作,请确保它是最后一个绑定"^I"的插件(如果您不明白我的意思,只需将它放到插件列表的末尾)。

相关项目

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号