rfig 是我開發的開源終端自動補全工具,目標是在既有 Shell 中提供輸入即顯示的候選選單,以及按工作目錄匹配的內聯歷史建議。專案受 Fig 啟發,是獨立的開源 Fig 替代方案,目前支援 macOS、Linux、zsh、Bash 4.4+ 與 Fish 3.6+,持續改進補全來源和互動體驗。
GitHub:https://github.com/tamia6/rfig

CLI 的子命令與參數越來越多,輸入過程中能看到候選,可以降低反覆查閱說明的成本。我希望把補全選單與歷史命令建議整合在一起,並保留 Shell 原本執行命令、切換目錄和處理環境變數的能力。
輸入後不必先按 Tab,就能瀏覽候選。上下方向鍵選擇,右方向鍵插入,再繼續補全下一層。分支、路徑等動態內容由本機可用的補全來源提供,不是硬編碼一份固定清單。
zsh 使用 ZLE 整合;Bash 與 Fish 共用 Rust 編輯層。命令仍然由目前 Shell 執行。候選來源包括原生補全定義、已安裝的補全腳本、可識別的命令補全生成器與協定,以及幫助資訊的本機快取。
設置時先快速掃描 PATH 和常見補全目錄,再於沙箱可用時,循序分析符合條件的命令。幫助解析只是後備來源,可用候選和補全層級取決於本機環境,並不保證每個命令都具備完整補全。
選單與歷史建議的輸入要分開。 例如使用者只輸入 gi,灰字可能顯示以前執行過的 git checkout main;候選選單仍只能根據 gi 計算,不能把建議當成使用者已輸入的內容。
接受候選與執行命令要分開。 右方向鍵插入選單候選;Ctrl+E 接受歷史建議但不執行。有歷史建議時,Enter 執行完整建議,否則執行實際輸入,不會把選單反白項目強制當成命令。
歷史需要工作目錄資訊。 rfig 自行維護本機歷史,不自動匯入缺少目錄資訊的舊 Shell 歷史。內建歷史建議可替代獨立的 zsh-autosuggestions 類外掛。選擇與執行紀錄也影響排序,最多前三項常用候選以圈號標記,其餘候選仍保留。
選單透過箭頭指示選中項,分類圖示與文字顏色使用終端 ANSI 調色板。命令執行或取消後,補全選單應清理乾淨;歷史與排序資料保留在本機。
brew install tamia6/tap/rfig
rfig setup
設置後開啟新的 Shell 工作階段即可使用。也提供包含二進位檔與安裝腳本的發布包,以及原始碼安裝方式。
英文網站:https://tamia6.github.io/rfig/
中文介紹:https://tamia6.github.io/rfig/zh/
歡迎分享多 Shell 整合、補全品質和終端顯示的使用經驗,也可以透過 GitHub Issues 回報問題。