dsh-multiline-input:在 DSH 对话输入框切换单行与多行

前言

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 客户端的第三方插件:不另开面板,在现有对话输入卡片内切换单行与多行,并记住每台设备上的模式(刷新、重启后保持)。

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

典型用法

  1. 安装并启用插件,刷新 DSH Web 或桌面客户端界面。
  2. 在对话输入框上沿查看 tab,或按 Cmd+E / Ctrl+E(Web + Linux 若无默认快捷键,需在设置里自行指定)切换到多行模式。
  3. 在多行模式下用 Enter 分段写提示,用 Shift+Enter 发送;需要回到单行聊天节奏时再按快捷键或点 tab。
  4. 若与 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 中的按键表与相近插件表选型。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye