前言¶
在使用 DSH Web Composer 编写提示词时,缺乏终端中常见的行历史导航和自动补全功能,会显著降低编辑效率。dsh-client-ui-quickfill 插件将 Shell 的滚动回溯机制引入浏览器,通过键盘快捷键提供历史记录调用、模糊搜索和自动补全功能,旨在提升提示词编写的流畅度。
核心功能¶
历史记录导航¶
插件支持两种历史记录调用模式:
1. 多行草稿:使用 Alt+Up 和 Alt+Down 循环浏览历史记录。
2. 单行草稿:使用 Up 和 Down 键。
在单行模式下,首次按 Up 会触发 zsh 的 up-line-or-search 逻辑:如果当前草稿是某个历史条目的前缀,光标会跳转至该条目并继续在该前缀下搜索。
模糊搜索¶
按下 Ctrl+R(Windows/Linux)或 Cmd+R(macOS)会打开一个模糊搜索选择器。输入内容会缩小匹配范围(子序列匹配),使用 Up/Down 选择条目,再次按 Ctrl+R 可跳转到下一个匹配项(反向搜索)。按下 Enter 填充内容,Esc 关闭选择器。
自动补全¶
在输入过程中,如果存在与当前草稿开头匹配的最新历史条目,插件会在光标后显示一个灰色的幽灵层(Fish 风格自动补全)。在末尾按下 Tab 或 Right Arrow 可接受该补全。
草稿保护与数据存储¶
插件会保护当前的草稿状态和光标位置。当切换回最新历史记录或按下 Esc 时,会恢复之前的内容。连续的重复历史会被折叠,空提示不会被记录。IME 输入(如中文拼音)不会受到干扰。
插件提供可选的跨会话历史池功能,利用 localStorage 扩展搜索范围,默认关闭以保护隐私。
安装与启用¶
安装插件¶
使用官方命令安装插件包:
dsh plugin --profile web add dsh-client-ui-quickfill
配置依赖¶
编辑 ~/.dsh/profiles/web/package.json,在 dependencies 中添加:
{
"dependencies": {
"dsh-client-ui-quickfill": "^0.1.0"
}
}
重启服务¶
安装后必须重启 dsh web 服务。插件作为自注册 Bundle,会自动扫描 cordis.patch.yml 并将 UI 组件注入到 window.__DSH_BOOT__ 启动图中。
使用说明¶
- 调用历史:按
Alt+Up或Alt+Down循环查看历史提示词。 - 模糊搜索:按
Ctrl+R打开搜索框,输入关键字查找历史记录。 - 接受补全:在输入过程中按
Tab或→接受灰色的自动补全建议。 - 退出与恢复:按
Esc关闭搜索框或恢复当前草稿和光标位置。
适用场景与注意¶
- 环境要求:需要 DSH Web Profile(版本 0.1.0-rc.8 及以上)和 pnpm 环境。
- 跨平台差异:macOS 用户需注意
Cmd+R同时也是浏览器的刷新快捷键,可能会存在冲突。 - 输入状态限制:当正在使用斜杠命令或发送消息正在进行时,
Ctrl+R会被拦截,需先按Esc退出该状态。 - 字体兼容性:在某些自定义主题字体下,幽灵补全层可能会发生 1-2px 的位移。
- 隐私与数据:跨会话历史存储在浏览器本地,默认关闭。如需启用,需手动在 Local Storage 中开启相关开关。
总结¶
该插件通过复用终端交互习惯,为 DSH Web Composer 提供了高效的历史管理和补全能力。所有数据存储在浏览器本地,不涉及服务器传输,适合需要频繁调试提示词的开发者使用。