前言¶
在 DeepSeek Harness(DSH)里写 prompt、改配置或和智能体对话时,输入框的快捷键往往沿用宿主或引擎的默认映射:有的环境 Enter 直接发送,Shift+Enter 换行;也有人习惯 Ctrl+Enter(macOS 上为 ⌘+Enter)发送。习惯不一致时,要么误触发送,要么多按一次组合键,打断思路。引擎本身不一定暴露这三组手势的独立开关,社区插件 dsh-keys-setting 的作用,就是在 DSH 设置窗口 →「通用」 里为 Enter、Shift+Enter、Ctrl/Cmd+Enter 分别选择「发送消息」或「换行」,且默认与引擎原生行为一致,不改设置时不额外干预。
下面介绍该插件的定位、实现要点、安装方式与配置字段。事实以 GitHub 仓库 README 与 package.json(当前版本 0.2.6)为准;社区目录页见 SkillHub(独立站点,与 DeepSeek / 幻方无官方从属关系)。
这是什么¶
dsh-keys-setting 由维护者 itchenshi 发布,分类为客户端插件:面向 DSH 的 Web 页面半边,在「设置 → 通用」增加一行「按键设置」,用三个下拉框分别绑定 Enter、Shift+Enter、Ctrl+Enter(macOS 为 ⌘+Enter)的语义。它只重映射手势,不修改输入内容;发送与换行仍由引擎决定。
核心功能¶
设置界面¶
- 在「设置 → 通用」增加「按键设置」,三个手势各有一个选择器:发送消息 / 换行。
- 在设置窗口里修改后立即生效。
页面侧行为¶
- 在捕获阶段监听输入框的
keydown:仅当你的选择与引擎原生行为不同时才拦截,并重新派发引擎对应的另一种手势。 - 输入法(
isComposing/ keyCode 229)与 Alt+Enter 一律放行,避免干扰中文输入等特殊场景。 - 默认值等于引擎原生行为;未改设置时干预次数为 0。
宿主侧与存储¶
- 偏好落在 profile 的
cordis.patch.yml里id: composer-keys这一行的config(由插件Configschema 声明);插件不直接读写任意文件。 - 宿主提供
GET/POST /composer-keys,走引擎信任围栏(Host 白名单 + 浏览器会话 cookie);无 cookie 的裸请求会得到 401。插件无对外网络请求。 config.enabled === false时宿主不注册路由、也不显示设置行。
安装与启用¶
DSH 生态理念是「一切皆插件」;安装前建议自行查看仓库源码与 MIT 许可证,并理解插件以当前 dsh 进程权限运行。
DSH Ready GUI(推荐)¶
插件随 GUI 内置。打开 GUI → 设置窗口 →「第三方插件」勾选按键设置,装完按提示刷新页面(该插件带页面半边)。
其它 DSH 宿主(dsh web / CLI)¶
任选一条命令;装到的都是本仓库完整内容(含 cordis.patch.yml),装完无需额外配置。本包不在 npm(registry.npmjs.org 查无此包)。
# 推荐:直接从 GitHub 装
dsh plugin --profile web add github:itchenshi/dsh-keys-setting
# 备选:从本仓库 Release 的 tarball 装
dsh plugin --profile web add https://github.com/itchenshi/dsh-keys-setting/releases/download/v0.2.6/dsh-keys-setting-0.2.6.tgz
典型用法¶
- 打开 DSH 设置窗口 →「通用」,找到「按键设置」。
- 按需为 Enter、Shift+Enter、Ctrl/Cmd+Enter 分别选择「发送消息」或「换行」。
- 回到对话输入框验证:只有与默认不同的映射才会被插件改写。
若习惯手改 profile,可编辑 cordis.patch.yml 中 id: composer-keys 的 config。宿主半边在页面窗口重新获得焦点时重读配置,切回 Harness 窗口即生效,一般不必刷新整页。
配置说明¶
cordis.patch.yml 里 id: composer-keys 一行的 config 不能省略;缺少则没有设置条目,宿主无法读写偏好。
| 键 | 默认 | 说明 |
|---|---|---|
enter |
send |
send = 发送消息,newline = 换行 |
shiftEnter |
newline |
Shift+Enter 同上 |
ctrlEnter |
send |
Ctrl+Enter(macOS ⌘)同上 |
兼容性与常见问题¶
- 需要 DSH >= 0.2.0-rc.2(0.2.0 更换了设置服务 API,0.1.x 无法保存偏好)。
- Node >= 20;运行时无额外 npm 依赖,schema 使用引擎自带的
@deepseek-ai/schemastery。
改完没生效? 设置窗口内改应立即生效;手改文件后需切回 Harness 窗口触发重读。宿主启动日志应出现 [composer-keys] route ready at /composer-keys (entry composer-keys),没有则说明插件未加载。
引擎过旧? 更旧引擎使用已移除的旧设置服务(register / get / section),插件无法保存偏好。
适用场景与注意¶
- 适合:长期在 DSH Web 界面输入、希望三组 Enter 相关手势与默认不一致、又不想改引擎核心的开发者或日常用户。
- 注意:仅重映射按键语义,不改变消息内容与发送逻辑;与 IME、
Alt+Enter相关的边界已由插件放行。 - 安装与启用前请阅读 GitHub 源码 与许可证;社区目录 itchenshi/dsh-keys-setting 便于检索,安装命令仍以 README 为准。
结尾¶
经过上面的步骤,你可以在 DSH 通用设置里统一 Enter 家族快捷键,且默认零干预。仓库:https://github.com/itchenshi/dsh-keys-setting;目录页:https://www.skillhub.cn/plugins/itchenshi/dsh-keys-setting。