前言¶
DeepSeek Harness(DSH)的对话输入框默认更接近「单行聊天」:Enter 发送、Shift+Enter 换行。写长提示、贴多段指令时,要么频繁换行键位,要么在单行里滚动编辑,体验并不理想。社区里也有把输入区撑高、全屏编辑或全局改 Enter 语义的插件,但各自取舍不同。
下面介绍 dsh-multiline-input(维护者 ZilongYang,分类:客户端插件)。它在原生 composer 上提供单行 / 多行双模式,用可配置的快捷键和输入框上沿的 tab 切换,多行模式下交换 Enter 与 Shift+Enter 的语义,并给多行草稿一个约 4 行的起始高度。插件当前版本 0.1.0,许可证 MIT;在 DSH 0.2.1-rc.3(桌面版 / Web)上验证,兼容范围见包清单 >=0.2.1-rc.3 <0.3.0-0。
这是什么¶
dsh-multiline-input 是面向 DSH Web 客户端的第三方插件:不另开面板,在现有对话输入卡片内切换单行与多行,并记住每台设备上的模式(刷新、重启后保持)。
- 目录页:https://www.skillhub.cn/plugins/ZilongYang/dsh-multiline-input
- GitHub:https://github.com/ZilongYang/dsh-multiline-input
- 项目主页:https://dsh.zlmix.com/multiline-input/
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。安装前建议自行查看源码与许可证——插件随当前 DSH 进程在客户端侧运行。
核心功能¶
模式切换与 tab 提示¶
- 默认快捷键:Cmd+E(macOS)或 Ctrl+E(Windows / Linux);也可点击输入框上沿、与输入框同底色的小 tab 在两种模式间循环。切换不清空草稿、不抢焦点。
- tab 常驻显示(输入文字时不隐藏):单行时提示可切到多行;多行时显示类似「Shift+Enter 提交 · Cmd+E 单行输入」的文案,并随你在设置里改过的快捷键实时更新。
多行高度¶
多行模式下,输入框默认约 4 行高(作者在实现说明中写明为 3–5 行区间内的常量),内容增多时随内容长高,直至 DSH 原生约 336px 上限后内部滚动。起始行数暂不提供配置项。
Enter / Shift+Enter 语义¶
| 操作 | 单行模式 | 多行模式 |
|---|---|---|
| Enter | 发送 | 换行 |
| Shift+Enter | 换行 | 发送 |
| Cmd/Ctrl+Enter | 加速提交(不变) | 加速提交(不变) |
/、@ 菜单打开时的 Enter |
选中菜单项 | 选中菜单项 |
| 输入法候选态的 Enter | 交给输入法 | 交给输入法 |
单行模式保持 DSH 原生行为;多行模式才交换 Enter 与 Shift+Enter。插件在捕获阶段处理按键,仍走 DSH 自带 composer keymap,以便保留撤销、输入法、busy-enter、菜单仲裁等逻辑。
快捷键自定义¶
在 设置 → 通用 → 快捷键 中搜索「多行输入」(命令名:切换多行输入,id multiline-input.toggle),录制新组合即可;冲突提示与恢复默认由 DSH 官方界面负责。若清空绑定,tab 仍显示「多行输入 / 单行输入」,点击 tab 仍可切换。
与相近插件的差异(摘自 README)¶
| 插件 | 它做什么 | 本插件 |
|---|---|---|
| dsh-composer-expand | 工具行按钮把输入框撑到 70vh | 双模式 + 快捷键 + Enter/Shift+Enter 互换 + 常驻 tab |
| dsh-fullscreen-input | 全屏面板写多行,Enter 换行、Ctrl+Enter 发送 | 内联原生输入框,多行时 Shift+Enter 发送 |
| dsh-ctrl-enter-submit | 全局 Enter 换行、Ctrl/Cmd+Enter 发送 | 单行保持原生 Enter 发送 |
| dsh-composer-ux | 可配置键位 + 右键菜单 + 快捷指令面板 | 只专注输入模式与高度 |
| dsh-keyboard-manager | Ctrl+Q / Ctrl+E / Ctrl+S 等 | Windows/Linux 上默认 Ctrl+E 可能冲突,需在设置里改键 |
安装与启用¶
CLI 或 market 管理的 profile 可使用:
dsh plugin --profile <profile> add dsh-multiline-input
也可在应用内「插件」页搜索安装,或用绝对路径 link 后启用。
桌面版使用的 desktop profile 由应用独占(dsh plugin --profile desktop 会被拒绝),请在应用「插件」页安装,或手动 link:
cd ~/.dsh/profiles/desktop
pnpm add link:/absolute/path/to/dsh-multiline-input
# 再把 "dsh-multiline-input" 追加到 package.json 的 dsh.profile.bundles
启用后刷新页面即可;插件清单变化不需要重启应用。
卸载:在插件页关闭 / 卸载,或:
dsh plugin --profile <profile> remove dsh-multiline-input
典型用法¶
- 安装并启用插件,刷新 DSH Web 或桌面客户端界面。
- 在对话输入框上沿查看 tab,或按 Cmd+E / Ctrl+E(Web + Linux 若无默认快捷键,需在设置里自行指定)切换到多行模式。
- 在多行模式下用 Enter 分段写提示,用 Shift+Enter 发送;需要回到单行聊天节奏时再按快捷键或点 tab。
- 若与 dsh-keyboard-manager 等插件默认键位冲突,到 设置 → 通用 → 快捷键 修改「切换多行输入」;冲突时插件可能降级为仅 tab 切换并在控制台输出一次警告(见 README「已知限制」)。
开发调试时:链接安装的 client.js 改动默认不会被 HMR 热加载,改完客户端代码后可在插件页关/开一次(或重启应用)再刷新页面。
适用场景与注意¶
适合谁:经常在 DSH 里写多段 system / user 提示、清单式指令,又希望单行模式下仍保持「Enter 即发送」习惯的用户。
不适用:TUI / CLI 端;插件仅作用于 Web GUI(含桌面版内嵌 Web)。
权限与安全:客户端插件修改 DOM 与快捷键行为,安装前应阅读 client.js 与 MIT 许可证,确认接受维护者代码在你本机 DSH 环境中的运行方式。
兼容性:依赖 DSH composer 的 data-* 锚点等内部实现;升级 DSH 后建议回归。锚点缺失时插件只 warn,不应导致整页崩溃。
已知限制(README):多行起始高度为代码常量 4 行,无配置项;默认键位冲突时依赖 tab 与设置改键。
结尾¶
dsh-multiline-input 把「单行聊天」和「多行写稿」收成同一输入框里的两种模式:快捷键、tab 与 Enter 语义一并切换,模式按设备持久化。若你需要在 Harness 里长写提示又不想离开原生 composer,可以按上文命令安装,并对照 README 中的按键表与相近插件表选型。