dsh-client-ui-quickfill:終端風格的提示歷史與快速補全

前言

在使用 DSH Web Composer 編寫提示詞時,缺乏終端中常見的行歷史導航和自動補全功能,會顯著降低編輯效率。dsh-client-ui-quickfill 插件將 Shell 的滾動回溯機制引入瀏覽器,通過鍵盤快捷鍵提供歷史記錄調用、模糊搜索和自動補全功能,旨在提升提示詞編寫的流暢度。

核心功能

歷史記錄導航

插件支持兩種歷史記錄調用模式:
1. 多行草稿:使用 Alt+Up 和 Alt+Down 循環瀏覽歷史記錄。
2. 單行草稿:使用 Up 和 Down 鍵。
在單行模式下,首次按 Up 會觸發 zsh 的 up-line-or-search 邏輯:如果當前草稿是某個歷史條目的前綴,光標會跳轉至該條目並繼續在該前綴下搜索。

模糊搜索

按下 Ctrl+R(Windows/Linux)或 Cmd+R(macOS)會打開一個模糊搜索選擇器。輸入內容會縮小匹配範圍(子序列匹配),使用 Up/Down 選擇條目,再次按 Ctrl+R 可跳轉到下一個匹配項(反向搜索)。按下 Enter 填充內容,Esc 關閉選擇器。

自動補全

在輸入過程中,如果存在與當前草稿開頭匹配的最新歷史條目,插件會在光標後顯示一個灰色的幽靈層(Fish 風格自動補全)。在末尾按下 Tab 或 Right Arrow 可接受該補全。

草稿保護與數據存儲

插件會保護當前的草稿狀態和光標位置。當切換回最新歷史記錄或按下 Esc 時,會恢復之前的內容。連續的重複歷史會被摺疊,空提示不會被記錄。IME 輸入(如中文拼音)不會受到干擾。

插件提供可選的跨會話歷史池功能,利用 localStorage 擴展搜索範圍,默認關閉以保護隱私。

安裝與啓用

安裝插件

使用官方命令安裝插件包:

dsh plugin --profile web add dsh-client-ui-quickfill

配置依賴

編輯 ~/.dsh/profiles/web/package.json,在 dependencies 中添加:

{
  "dependencies": {
    "dsh-client-ui-quickfill": "^0.1.0"
  }
}

重啓服務

安裝後必須重啓 dsh web 服務。插件作爲自注冊 Bundle,會自動掃描 cordis.patch.yml 並將 UI 組件注入到 window.__DSH_BOOT__ 啓動圖中。

使用說明

  • 調用歷史:按 Alt+Up 或 Alt+Down 循環查看歷史提示詞。
  • 模糊搜索:按 Ctrl+R 打開搜索框,輸入關鍵字查找歷史記錄。
  • 接受補全:在輸入過程中按 Tab 或 → 接受灰色的自動補全建議。
  • 退出與恢復:按 Esc 關閉搜索框或恢復當前草稿和光標位置。

適用場景與注意

  • 環境要求:需要 DSH Web Profile(版本 0.1.0-rc.8 及以上)和 pnpm 環境。
  • 跨平臺差異:macOS 用戶需注意 Cmd+R 同時也是瀏覽器的刷新快捷鍵,可能會存在衝突。
  • 輸入狀態限制:當正在使用斜槓命令或發送消息正在進行時,Ctrl+R 會被攔截,需先按 Esc 退出該狀態。
  • 字體兼容性:在某些自定義主題字體下,幽靈補全層可能會發生 1-2px 的位移。
  • 隱私與數據:跨會話歷史存儲在瀏覽器本地,默認關閉。如需啓用,需手動在 Local Storage 中開啓相關開關。

總結

該插件通過複用終端交互習慣,爲 DSH Web Composer 提供了高效的歷史管理和補全能力。所有數據存儲在瀏覽器本地,不涉及服務器傳輸,適合需要頻繁調試提示詞的開發者使用。

GitHub 倉庫
社區目錄

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜