前言¶
在 DeepSeek Harness(DSH)里写长对话、翻 diff 或工具输出时,往往需要在当前界面里定位某个词或片段。浏览器自带的查找有时会把侧栏、输入框也算进范围,计数和跳转都不干净;会话页若只关心消息流,更需要和「整页 Ctrl+F」区分开的行为。下面介绍社区客户端插件 dsh-conversation-find(维护者 ACGNnsj):在主界面提供类似浏览器 Ctrl+F 的查找条,全部高亮、逐条跳转,并按页面类型区分搜索范围。
这是什么¶
dsh-conversation-find 是 DSH 的客户端插件:不订阅 chat store,在 DOM 层遍历文本、高亮命中并滚动到视野中央。会话页默认只搜当前会话的消息流(含代码块、diff、工具输出);设置、插件、插件市场、画布等页面则按「整页」或「正文区」策略搜索。查找条浮层落在头部标签栏分割线下方,尽量不挡标签栏。
- 社区目录:skillhub.cn/plugins/ACGNnsj/dsh-conversation-find
- 源码与说明:github.com/ACGNnsj/dsh-conversation-find
- 许可证:MIT(package.json 当前版本 0.3.0)
目录站点与 DeepSeek / 幻方无官方从属关系;DSH 生态里能力多以插件形式扩展,安装前建议自行查看源码与许可证。
核心功能¶
按页面区分范围¶
- 会话页:只搜消息流,计数不带侧栏和输入框噪声。
- 其他页面:行为接近浏览器整页查找;也可在设置里改为「正文区」,跳过左侧会话列表与导航,只搜主体。
查找条与快捷键¶
打开 / 关闭、上一条 / 下一条、关闭等操作与常见桌面查找一致;会话头右侧另有放大镜按钮——当宿主桌面菜单截走 Ctrl+F、键盘事件到不了页面时,与快捷键等效。
设置项(通用)¶
三项偏好写入 localStorage,刷新后保留:
| 设置 | 键 | 要点 |
|---|---|---|
| 页面查找快捷键 | dsh-conversation-find:shortcut |
默认「自动」同时监听 Ctrl+F、Ctrl+Shift+F、Alt+F;可固定为其中一种或 F3 |
| 页面查找范围 | dsh-conversation-find:scope |
默认「正文区」;可选「整页」 |
| 切换页面时 | dsh-conversation-find:on-switch |
默认换页关闭查找条并清高亮;可选保留并在新页用同一关键词重搜 |
行为摘要¶
输入即搜(120ms 防抖);命中包 <mark>,右侧显示「当前/总数」。流式输出、路由切换、React 重渲染后高亮会通过 MutationObserver 等机制重贴。查找条自身不参与搜索;默认跳过输入框、编辑器和左侧会话列表,避免可编辑区域被 <mark> 包裹导致丢字。
已知限制¶
- 只搜当前已挂载到 DOM 的文本;虚拟化或未加载的历史需滚动加载后重新输入搜索。
- 搜的是渲染后文本,不是 markdown 源码。
- 不支持正则、大小写敏感、整词匹配(固定为不区分大小写的子串)。
安装与启用¶
桌面 profile 安装(命令来自仓库 README):
dsh plugin --profile desktop add dsh-conversation-find
也可在 DSH 插件管理里搜索 dsh-conversation-find 安装。装完后 Ctrl+R 刷新一次页面。
本地目录开发安装示例:
dsh plugin --profile desktop add file:D:/path/to/dsh-conversation-find
插件在当前 DSH 进程权限下运行;安装前请核对仓库代码与 MIT 许可证是否可接受。
典型用法¶
- 在会话或设置页按
Ctrl+F(macOS:Cmd+F),或点会话头放大镜,打开查找条。 - 输入关键词,查看
当前/总数,用Enter/F3/↓下一条,Shift+Enter/Shift+F3/↑上一条。 Esc关闭。若Ctrl+F被宿主菜单占用,在 设置 → 通用 → 页面查找快捷键 改用「自动」或固定Ctrl+Shift+F/Alt+F。- 需要搜侧栏时,将 页面查找范围 改为「整页」;长对话定位消息流时保持默认「正文区」即可。
实现要点(供排查参考)¶
逻辑在 lib/client.js:插槽包括 shell.overlay(查找条)、conversation.session.header.utilities(放大镜)、settings.general.item(设置行)。UI 优先复用宿主 @deepseek-ai/dsh-client-ui-primitives 的 Menu,不可用时降级为原生 <select>。
结尾¶
dsh-conversation-find 把「浏览器式页面内查找」接到 DSH 主界面,并在会话页把范围收窄到消息流,适合在长对话、代码块和工具输出里快速定位文本。细节与变更记录见 GitHub README。