GitHub Trending ★ 88 3 min

HalFrgrd/flyline

Rust

🔗 https://github.com/HalFrgrd/flyline

📌 Flyline:用 Rust 重寫 Bash readline,讓指令列編輯更順手

TL;DR:Flyline 用 Rust + ratatui 替換 Bash 內建 readline,提供自動建議、模糊歷史、滑鼠支援等功能,適合想省掉繁雜外掛設定的終端高手。

在 Bash 需要輸入指令時,背後由 readline 處理按鍵。可惜 readline 功能有限,常讓使用者自行安裝多個外掛來彌補。Flyline 直接以 Rust 實作一套完整的替代方案,讓指令列即開即用,同時提供許多現代化的編輯特性。

🧩 功能概覽:從自動建議到動畫 UI

  • Intellisense 風格的 autosuggestions:根據歷史與檔案系統即時顯示建議。
  • 即時變更目錄:在提示列直接輸入路徑即可切換目錄。
  • 豐富的提示列自訂:支援非同步小工具、動畫與游標樣式。
  • 模糊歷史搜尋:以模糊比對快速找回過去指令。
  • 滑鼠支援:點選移動游標、選取文字。
  • 增強 tab 完成:結合 flycomp 合成建議,提升補全品質。
  • 代理輔助指令撰寫:提供工具提示與自動關閉括號/引號。
  • 語法高亮與文字選取:即時顯示語法顏色,支援區塊選取。
  • 游標動畫與樣式:使用 ratatui.rs 繪製動態 UI,與 Bash 同程式執行。

⚙️ 技術亮點:Rust + ratatui
Flyline 的核心以 Rust 撰寫,與類似的 ble.sh 不同,它利用 ratatui.rs(Rust 版 TUI 框架)來繪製複雜介面,減少 Bash script 的維護負擔,同時提升效能與安全性。

🎣 適合物件:想要即插即用的高階終端使用者

  • 想省去安裝多個外掛、管理外掛與自訂快捷鍵的麻煩。
  • 喜歡以現代語言(Rust)作為擴充點的「終端電力玩家」。
  • 需要完整、可自訂的提示列體驗,同時保持與 Bash 同程式執行。

🚀 快速上手

  1. 執行官方提供的安裝指令碼 install.sh
  2. 安裝後跑 flyline run-tutorial 觀看教學。
  3. 如不需要滑鼠捕獲,可使用 flyline mouse --mode disabled 取消。

💡 實務啟示

  • 以 Rust 重寫底層編輯庫,可在保持相容性的同時,引入高效能 UI 元件。
  • ratatui.rs 的抽象層讓開發者不必自行處理終端字元繪製,降低實作門檻。
  • 若你的工作流程依賴 Bash,且希望在同一個終端環境內即時取得自動建議與視覺化提示,直接切換到 Flyline 可省去多個外掛的組合設定。

🔗 來源

#Bash #Rust #TUI #CommandLine #ReadlineReplacement #Flyline #Terminal #ShellEnhancement #ratatui #CLI #OpenSource

google/gemma-4-31b-it:free 自動生成