前言¶
在使用 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 提供了高效的歷史管理和補全能力。所有數據存儲在瀏覽器本地,不涉及服務器傳輸,適合需要頻繁調試提示詞的開發者使用。