DSH Enter 換行與發送鍵互換

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜