McFly
智慧型 Shell 歷史搜尋
產品說明
McFly 是一款以 Rust 打造的 Shell 歷史搜尋工具,旨在取代傳統 Shell(如 Bash、Zsh、Fish)中單調的 Ctrl+R 反向搜尋功能。它的命名致敬了經典電影《回到未來》的主角 Marty McFly,象徵著帶你更精準地穿梭於過去的指令歷史中。
與傳統搜尋不同,McFly 內建了一個輕量級的類神經網路 (Neural Network) 引擎。它不僅僅是比對關鍵字,還會根據你當下的「上下文」來即時排序建議結果。這意味著,McFly 知道你在哪個目錄下工作、最近執行了什麼指令,以及你過往的使用習慣,從而精準預測你現在最想執行的指令。
核心特色:
- 上下文感知:搜尋結果會依據「當前目錄」、「執行頻率」、「最後執行時間」以及「指令執行後的退出狀態(是否成功)」進行加權排序。
- 智慧排序:透過即時運算的微型神經網絡,將最相關的指令推送到清單頂端,而非僅顯示最近一次的紀錄。
- 全螢幕介面:提供清晰、現代化的 UI 介面,不再是單行顯示,讓你更容易瀏覽與選擇歷史指令。
- Fuzzy Search:支援模糊搜尋,即使記不清完整指令或參數,也能輕鬆找到目標。
- Unicode 支援:完美支援各種字元編碼,包含中文指令或特殊符號。
安裝指南
McFly 支援跨平台安裝,且對主流 Shell(Bash, Zsh, Fish, PowerShell)皆有良好支援。
macOS / Linux (Homebrew)
brew install mcfly
Linux (使用 Cargo, 需安裝 Rust 環境)
cargo install mcfly
Linux (安裝腳本)
# 下載並執行官方安裝腳本
curl -LSfs [https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh](https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh) | sh -s -- --git cantino/mcfly
Windows (Winget)
winget install cantino.mcfly
⚠️ 關鍵步驟:Shell 整合
安裝軟體後,你必須在你的 Shell 設定檔(如 .bashrc, .zshrc, config.fish)末端加入初始化指令,才能接管 Ctrl+R。
- Bash:
eval "$(mcfly init bash)" - Zsh:
eval "$(mcfly init zsh)" - Fish:
mcfly init fish | source - PowerShell:
Invoke-Expression -Command $(mcfly init powershell | Out-String)
設定完成後,請重新啟動終端機或 source 設定檔。
使用教學
一旦設定完成,McFly 就會無縫接管你的 Ctrl+R 快捷鍵。
1. 基礎操作
- 啟動搜尋:在終端機中按下
Ctrl + R。 - 瀏覽歷史:
- McFly 介面會彈出,佔據下方版面。
- 使用
↑/↓鍵(或Ctrl+N/Ctrl+P)在建議清單中移動。
- 執行指令:選定目標後,按下
Enter即可立即執行該指令。 - 編輯指令:若想修改指令參數(例如更換檔名),按下
Tab鍵,指令會填入目前的命令列(Prompt),讓你進行編輯後再執行。
2. 刪除歷史紀錄
- 如果在搜尋結果中看到不想保留的敏感指令(如包含密碼的指令),選取該行後按下
F2即可從 McFly 資料庫與 Shell 歷史檔中永久刪除。
3. 自我學習與訓練
McFly 雖然開箱即用,但它也支援手動訓練模式來優化神經網路的權重(通常不需要頻繁執行,因為它會自動學習)。
- 手動觸發訓練:
mcfly train
這會讓 McFly 根據你最近的操作歷史,重新調整其推薦演算法的權重,讓建議更貼合你最新的工作流。
小撇步:你會發現,當你在不同專案目錄下按下
Ctrl+R時,McFly 推薦的內容會截然不同,這就是它「上下文感知」的強大之處!



