<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>tamia6 (tamia)</title>
    <link>https://ruby-china.org/tamia6</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>rfig：用 Rust 实现的终端自动补全，支持 zsh、Bash、Fish</title>
      <description>&lt;h2 id="rfig：用 Rust 实现的终端自动补全，支持 zsh、Bash、Fish"&gt;rfig：用 Rust 实现的终端自动补全，支持 zsh、Bash、Fish&lt;/h2&gt;
&lt;p&gt;rfig 是一个开源 Rust 终端工具，为 macOS 和 Linux 上的 zsh、Bash、Fish 提供输入即出现的命令补全菜单，以及按当前目录匹配的内联历史建议。它受 Fig 启发，是一个独立的开源 Fig 替代方案。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/tamia6/rfig/main/assets/rfig-demo.gif" title="" alt="rfig 在 zsh 中展示命令补全菜单与内联历史建议"&gt;&lt;/p&gt;

&lt;p&gt;实际终端演示：命令与路径补全，以及输入 &lt;code&gt;gi&lt;/code&gt; 时同时显示菜单和内联历史建议。&lt;/p&gt;
&lt;h2 id="输入时展示候选，继续补全下一层"&gt;输入时展示候选，继续补全下一层&lt;/h2&gt;
&lt;p&gt;不用先按 Tab：输入命令后即可浏览候选，用上下方向键选择、右箭头插入，再继续输入下一层。已有补全定义可以提供子命令、当前仓库的分支、路径等动态内容；可用层级和候选范围取决于本机的补全来源。&lt;/p&gt;

&lt;p&gt;菜单与历史建议可以同时出现，而且分别计算。例如只输入 &lt;code&gt;gi&lt;/code&gt; 时，菜单仍然根据 &lt;code&gt;gi&lt;/code&gt; 提示命令，灰色的历史建议则可能补出以前在当前目录执行过的 &lt;code&gt;git checkout main&lt;/code&gt;。Ctrl+E 接受历史建议；有历史建议时 Enter 执行完整建议，否则执行实际输入，不会自动接受菜单选中项。&lt;/p&gt;

&lt;p&gt;内置历史建议可以替代 &lt;code&gt;zsh-autosuggestions&lt;/code&gt; 的历史命令建议功能。rfig 自行维护带工作目录的本地历史，不自动导入缺少目录信息的旧 Shell 历史。选择与执行记录也会参与候选排序，最多前三个有使用记录的候选显示圈号，其他候选仍正常展示。&lt;/p&gt;
&lt;h2 id="Rust 与 Shell 怎样协作"&gt;Rust 与 Shell 怎样协作&lt;/h2&gt;
&lt;p&gt;zsh 使用 ZLE，Bash 和 Fish 共用 Rust 编辑层，命令仍由当前 Shell 执行。补全优先复用环境中的原生定义和已安装脚本，再结合可识别的补全生成器、协议和帮助缓存。&lt;/p&gt;

&lt;p&gt;安装设置时快速扫描 PATH 与常见补全目录，随后在隔离能力可用的情况下，串行分析符合条件的用户命令。帮助分析只是后备来源，不能保证任意命令都有完整的多级补全。&lt;/p&gt;

&lt;p&gt;图标与选中文字使用终端 ANSI 调色板，菜单以箭头指示选中项。历史、排序记录和缓存保存在本机。&lt;/p&gt;
&lt;h2 id="安装"&gt;安装&lt;/h2&gt;
&lt;p&gt;当前支持 macOS、Linux，以及 zsh、Bash 4.4+、Fish 3.6+。Homebrew 安装：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;tamia6/tap/rfig
rfig setup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置后打开新的 Shell 会话。也可以下载包含二进制和安装脚本的发布包，或从源码安装；详细系统要求和使用说明见项目文档。&lt;/p&gt;

&lt;p&gt;项目源码：&lt;a href="https://github.com/tamia6/rfig" rel="nofollow" target="_blank"&gt;https://github.com/tamia6/rfig&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;中文官网与演示：&lt;a href="https://tamia6.github.io/rfig/zh/" rel="nofollow" target="_blank"&gt;https://tamia6.github.io/rfig/zh/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;欢迎反馈多 Shell 集成、终端显示和补全来源方面的体验。&lt;/p&gt;</description>
      <author>tamia6</author>
      <pubDate>Thu, 08 Oct 2026 21:06:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/44713</link>
      <guid>https://ruby-china.org/topics/44713</guid>
    </item>
  </channel>
</rss>
