前言¶
在 DSH(DeepSeek Harness)Web 界面中,輸入框的默認行爲通常是 Enter 發送消息。對於習慣在聊天窗口中多行寫作或編輯長文本的用戶來說,這會打斷思路。傳統做法是使用 Shift+Enter 換行,但需要記住這個組合鍵,容易混淆。
下面介紹一個極簡插件,將 Enter 鍵改爲換行,Shift+Enter 改爲發送,還原聊天軟件的默認交互。
這是什麼¶
dsh-enter-swap 是 DSH 的一個 Web 客戶端插件,由維護者 xuqiuba888 開發。插件版本 0.1.4,許可證爲 MIT。它的核心作用是在 Web 界面中交換 Enter 和 Shift+Enter 的行爲:Enter 插入換行,Shift+Enter 發送消息。
插件採用零依賴設計,無需設置頁,安裝後立即生效。
核心功能¶
插件實現以下按鍵行爲互換:
- Enter:插入換行
- Shift+Enter:發送消息
- Ctrl/Cmd+Enter:保持原生加速投遞(由引擎決定)
- Alt+Enter:保持原生
- 中文輸入法組詞過程不攔截
- 斜槓命令
/或@提及候選菜單打開時,Enter 正常選中菜單項
在輸入框工具欄(模型選擇器左側)會顯示膠囊提示:〔Shift+Enter 發送消息〕〔Enter 換行〕。
安裝與啓用¶
使用 DSH CLI 安裝:
dsh plugin --profile web add github:xuqiuba888/dsh-enter-swap
其他 profile 同理,只需在命令中添加 --profile <名>。
安裝完成後需要重啓 DSH(Desktop/NEXT 應用)或刷新瀏覽器/界面(Ctrl+Shift+R)使插件生效。
卸載與更新¶
更新到最新版本:
dsh plugin --profile web update dsh-enter-swap
卸載插件:
dsh plugin --profile web remove dsh-enter-swap
卸載後刷新即可恢復原生行爲。
實現要點¶
插件在 document 捕獲階段監聽 keydown 事件,僅當目標位於輸入框([data-composer-input="true"])內時處理按鍵互換。手勢判定規則包括:
- Alt/Ctrl/Cmd 一律放行
isComposing/ keyCode 229(中文輸入法組幀)放行- 檢測到掛載在
<body>直下且可見的 portal 菜單(role="menu"或role="listbox")時放行,Enter 正常選中菜單項
命中時執行 preventDefault 和 stopPropagation,再把互換後的手勢以合成 KeyboardEvent 派發回引擎,由引擎決定發送或換行的語義。
Client bundle 爲純 JS,使用 __ModuleLoader__ 工廠格式,無需構建步驟。
兼容性¶
插件在 DSH 0.2.x 上開發並驗證,具體爲 0.2.1-rc.2 web 界面。不使用任何引擎版本特定的內部 API。
適用場景¶
適合習慣在聊天輸入框中多行寫作、編輯長文本或需要頻繁換行的用戶。對於需要快速切換髮送和換行操作的場景,該插件可以減少記憶組合鍵的負擔。
注意事項¶
- 插件以當前 DSH 進程權限運行
- 安裝前建議檢查源碼與許可證(MIT)
- 卸載後刷新即可恢復原生行爲
小結¶
dsh-enter-swap 通過極簡的按鍵互換,解決了 DSH Web 界面中 Enter 與 Shift+Enter 行爲與常見聊天軟件不一致的問題。零依賴、無設置頁、安裝即用,適合追求原生交互體驗的用戶。
- 插件目錄頁:https://www.skillhub.cn/plugins/xuqiuba888/dsh-enter-swap
- GitHub 倉庫:https://github.com/xuqiuba888/dsh-enter-swap