dsh-client-ui-quickfill:终端风格的提示历史与快速补全

前言

在使用 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 提供了高效的历史管理和补全能力。所有数据存储在浏览器本地,不涉及服务器传输,适合需要频繁调试提示词的开发者使用。

GitHub 仓库
社区目录

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

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

小夜