English GitHub ↗

zsh · Bash · Fish

让终端
跟上你的思路。

开源终端自动补全 · 受 Fig 启发的独立项目

输入时查看候选,用右箭头插入下一步。菜单与按目录匹配的历史命令自动建议同时显示,无需另外安装 zsh-autosuggestions 类命令自动建议插件。

v0.2.0 支持 zsh、Bash 4.4+、Fish 3.6+。查看支持范围与系统要求 ↗

01 输入即显示02 动态多级补全03 尊重本机环境
rfig — zsh⌘
❯ git checkout
→①feature/ui-refresh
●main
●release/0.1
↑ ↓ 选择 · → 插入 · Enter 执行
↳ 多一级,也一样顺手

LIVE IN YOUR TERMINAL

补全,应该就在光标旁边。

无需切换窗口,也无需记住所有子命令。选中候选后继续输入,下一层自然出现。

真实终端演示rfig / zsh
rfig 在 zsh 中演示命令与路径补全,以及历史命令自动建议的显示、接受和执行

↗ 输入 gi,菜单按实际输入显示候选,历史命令自动建议以内联灰色文本显示。Ctrl+E 接受建议,Enter 执行完整建议。

BUILT FOR FLOW

少一点打断,
多一点专注。

把熟悉的终端留给你,把繁琐的记忆工作交给 rfig。

01 / 直接出现

补全菜单与自动建议,同时呈现。

菜单根据实际输入提示候选,历史命令自动建议(History-based Autosuggestions)根据当前目录的历史匹配完整命令,以内联灰色文本显示。方向键浏览菜单,右箭头插入;Ctrl+E 接受自动建议,Enter 在有自动建议时执行完整建议,否则执行当前输入。

02 / 跟着环境走
{git}

动态,不靠死表。

优先使用当前 Shell 的补全定义,再结合可用脚本、协议和帮助缓存。分支、路径等候选随环境变化,多级能力取决于补全来源。

03 / 越用越顺手
① 常用候选  ② 第二选择  ↳ 其他命令

习惯决定排序。

按命令上下文累计选择与执行记录。常用候选靠前,最多前三项标记圈号,其他候选仍可浏览;数据保存在本机。

输入 gi 时,即使自动建议给出完整的 git checkout master,菜单也只按 gi 提示。颜色使用终端的 ANSI 调色板,选中项由箭头与文字颜色标识。

KNOW WHAT WORKS

选你熟悉的 Shell。

v0.2.0 支持以下 Shell,可按需分别启用。

当前源码的 Shell 支持范围。
功能zshBash 4.4+Fish 3.6+
自动菜单与多级候选✅ 已支持✅ 已支持✅ 已支持
按目录匹配的自动建议✅ 已支持✅ 已支持✅ 已支持
常用排序、类别配色✅ 已支持✅ 已支持✅ 已支持

macOS 与 Linux

当前源码支持 Linux x86_64 / ARM64。帮助探测使用 Landlock + seccomp,需启用 Landlock ABI 3+(通常为 Linux 6.2+);不满足时保留现有补全和历史。Linux 安装包提供 x86_64 与 ARM64 两种架构,可从 Releases 下载。

按需启用多个 Shell

使用 rfig setup --shell zsh 配置 zsh;将 Shell 名称换为 bash 或 fish 即可分别启用。配置完成后打开新会话,rfig 不会修改默认 Shell。

HOW IT WORKS

从安装到顺手,
只差一次设置。

安装时扫描当前 PATH 中的可执行命令与常见补全目录。macOS/Linux 在可用沙箱中串行分析缺少规则的部分用户命令;动态候选仍按需查询。

01安装 rfig

选择 Homebrew、预编译包或源码安装。

02运行 setup

按 $SHELL 或 --shell 指定的类型写入集成;可用沙箱中后台继续优化,可重复设置。

03打开新终端

有可用补全来源时,候选出现在输入下方;历史从使用时开始按目录记录。

GET STARTED

现在,打开你的终端。

macOS 与 Linux 均可从源码安装。Linux 安装包按 x86_64 / ARM64 区分,要求 glibc 2.36+。Homebrew 和下载包以发布版本为准。macOS 自带 Bash 3.2 不支持。

在终端运行
brew install tamia6/tap/rfig
rfig setup

安装 Tap 发布版本,setup 默认按 $SHELL 配置;随后打开对应 Shell 的新会话。

A FEW DETAILS

开始之前,你可能想知道。

还需要安装 zsh-autosuggestions 吗?

不需要。rfig 内置历史命令自动建议,可替代它的历史命令自动建议功能。请从 .zshrc 或插件管理器中移除旧插件的加载配置,再开启新会话。Fish 集成也会关闭原生命令自动建议,使用 rfig 的目录历史。

rfig 是 Fig 的替代品吗?

rfig 是受 Fig 启发的独立开源终端自动补全项目,与 Fig 无隶属关系,也不声称兼容 Fig 的全部功能或规范。

rfig 支持所有命令吗?

不保证。候选范围取决于本机可用的补全定义、脚本、生成器和帮助缓存。有些命令可能没有候选,或只能获得基于帮助文本的基础候选。

rfig 会使用 AI 吗?

不会。补全、历史建议和使用排序均在本机运行,无需 AI 服务或云端账号。

会导入旧历史、扫描整台电脑吗?

不会自动导入缺少目录信息的旧 Shell 历史。命令扫描以当前 PATH 与常见补全目录为范围,不会遍历整块磁盘。历史、选择记录与缓存保存在 ~/.config/rfig/。

菜单与自动建议同时出现,Enter 会执行什么?

有自动建议时,Enter 执行完整建议;没有自动建议时,执行实际输入,不会接受高亮菜单项。光标在行尾时,右箭头优先插入菜单选中项,Ctrl+E 接受自动建议而不执行。

为什么有些命令没有候选?

命令可能没有可用补全定义,或后台分析尚未完成、被跳过或失败。可查看 ~/.config/rfig/enrich.status;done 只表示处理结束,不代表每个命令都成功。可用 rfig analyze <命令名> 单独刷新。Linux 若缺少 Landlock 或被容器限制,会明确提示无法探测,不会退回无隔离执行。

怎样启用另一个 Shell?

当前源码支持分别运行 rfig setup --shell zsh、rfig setup --shell bash 或 rfig setup --shell fish,再打开对应 Shell 的新会话。设置不会改变你的默认 Shell,各 Shell 的候选可能不同。