Skip to content

QuickKV是一款只专注于中文自动补全文本拓展的开源、轻量级、高效、零门槛、易迁移、轻度剪贴板记忆、高可定制化、纯净无任何商业目的快捷输入增强工具。

License

Notifications You must be signed in to change notification settings

msjsc001/QuickKV

Repository files navigation

⌨️ QuickKV 轻量级中文自动补全拓展软件

PixPin_2025-07-28_13-36-22

QuickKV是一款只专注于中文自动补全、文本拓展的开源、轻量级、高效、零门槛、易迁移、轻度剪贴板记忆、高可定制化、纯净无任何商业目的快捷输入增强工具。它能让您将所有常用的文本片段(如邮箱、代码、模板、常用回复等)保存在一个或多个简单的 Markdown 文件词库中(多词库可灵活勾选使用),通过全局热键 Ctrl+Space 在任何应用程序中即时搜索并粘贴它们(支持拼音首字母,空格多词),极大地提升您的输入效率。

  • 它与自动补全类软件旗舰软件 FastKeys、PhraseExpander 不同的是,KV只专注于中文补全且支持中文超轻量级,没有其它更多的功能,比如输入字母后加一个特定按钮打开一个软件、网站之类,如果有需要这类功能推荐可以 FastKeys 配合使用,KV这里就不重复造轮子了,FastKeys也是款很不错的软件。PhraseExpander 是自动补全标杆级软件,功能相对繁杂,喜欢的也可以尝试。(不过就我个人而言,并不是太乐意去记忆几个字母+一个特定按钮激活的方式来打开软件,因为我自己有几百个软件这样根本不现实,也徒增认知负担,更喜欢图形化直观的图标,我个人更的是用OneCommander,做一个快捷启动的文件夹,文件夹里有分类一键就能展开各种复杂分类打开程序,非常稳定高效,几乎无迁移问题)
  • 它与剪贴板旗舰类软件 Ditto 的差异是更便捷,KV也轻度的支持剪贴板记忆,Ditto 也能将文本图片等分组固定,后期通过快捷搜索找到内容贴入,不过你可能要多按几次键盘按钮,它更多是侧重在功能强大的剪贴板管理,而非补全,有很多细微的差异。总的来说它也是一种不错的方式,推荐喜欢的朋友也可以试试,也可以组合使用,由于它的剪贴板功能更强大,你也可以选择关闭KV的剪贴板记忆使用它的剪贴板,使用KV的补全输入,这样两者的长处都取,总之选择自己最喜欢的方式(我个人更用KV的简单方式的剪贴板已经足够)。
  • 它与通常输入法自定义短语非常类同,的差异是搜索、展现、管理逻辑不一样。输入法的更多是联想查找,而KV是匹配查找,搜索上KV是聚焦不是发散。展现上KV是任意调节窗口的列表列表式,更利于对比。管理上多md词库(这和txt文本就只是后缀不同),非常易于管理和迁移。不过如果你只有很少的词需要进行拓展,其实输入法自带的短语也就够用了,无须用到KV这些软件,没有需求就不用创造需求,凭空增加自己使用电脑的的成本,但如果你有文本拓展需求时使用KV或上述提到的软件,那就是效率增益。
  • 它与脚本语言自动化软件自动补全软件 AutoHotkey、Espanso 差异是,它是定制好的,是基于 Python 的, Python 延展性可库支持是很强大的,且现在AI编程对Python的支持是非常好的,很多简单的需求和改进一句话基本就能解决需求,换句话说对小白而言只要环境搭建好开发效率也会大大高于 Quicker 这类积木软件,你都不用去搭积木了。
  • 它与工具库插件库类软件 Flow Launcher、Quicker这类庞大快的指令型软件差异,也是很明显的,你不需要去写一个插件,它已经是一个完成体,当然你要喜欢自己用代码或搭积木再定制,那么上这两也是可以的。

Anyhow 按自己所需所喜欢的来就是最适合,就是最好的!


简易图文教程

20210606180518 PixPin_2025-07-28_14-01-50 PixPin_2025-07-28_14-12-41 PixPin_2025-08-05_18-37-04

PixPin_2025-08-02_00-11-00 PixPin_2025-07-28_14-20-04 PixPin_2025-07-28_14-23-06 PixPin_2025-07-28_14-36-52 PixPin_2025-07-28_15-00-50 PixPin_2025-07-28_15-08-24 PixPin_2025-07-28_15-31-43 PixPin_2025-07-28_15-21-46

⚒️ QuickKV 词库加强辅助 KVTree

KVTree 支持用 Markdown 文件无序列表树(大纲)建立词库,建立的词库软件会自动转换生成为 QuickKV 词库 需要可点击下载使用 → KVTree 503D67DE29FDBA7D13832F52DB4007DF image


QuickKV核心特性(文本介绍)

  • 全局热键: 在任何地方按下 Ctrl + Space 即可呼出搜索框。
  • 多词库管理:
    • 支持同时加载多个 .md 词库文件。
    • 可在托盘菜单中动态添加、启用/禁用、移除词库。
    • 可快速打开词库文件所在的目录,方便编辑。
  • 剪贴板记忆:
    • 可选功能,开启后可自动记录剪贴板的文本内容。
    • 在搜索框为空时优先显示剪贴板历史,方便快速粘贴。
    • 支持自定义记忆数量和一键清空历史。
  • 词条管理:
    • 支持在程序内通过右键菜单直接添加、编辑、删除词条。
    • 支持多行词条(父子内容),用于管理复杂的模板和代码片段。
    • 独有的 ``不出现`` 语法,可在粘贴时忽略父级标题。
    • 快捷码 ``k:xxx`` 语法,通过输入 xxx 直接触发粘贴,实现零点击操作。
  • 智能搜索:
    • 支持对父级词条进行关键词模糊搜索和多关键词筛选(空格分隔)。
    • 支持拼音首字母搜索,输入 qd 即可匹配“请定”。
  • 高度自定义:
    • 支持日间/夜间双主题。
    • 可自由调整窗口大小设置字体大小
    • 支持窗口置顶(图钉功能)。
  • 稳定性保障:
    • 原生快捷键: 使用 Windows 原生 API 注册全局热键,彻底告别因钩子不稳定导致的快捷键失效问题。
    • 可选的间隔时间自动重启功能,确保程序长时间稳定运行。
  • 轻量与高效: 后台静默运行,占用极少系统资源,并通过文件热重载实现配置和词库的实时更新。

⚠️ 重要声明与许可协议 (IMPORTANT DISCLAIMER & LICENSE)

在下载、安装或以任何方式使用本软件 (QuickKV) 与代码前,请您务必仔细阅读并充分理解以下所有条款。本软件是基于 MIT 许可证 (MIT License) 发布的免费开源项目。一旦您开始使用本软件的任何部分(包括但不限于运行程序、查阅代码、修改或分发),即表示您已完全阅读、理解并无条件接受本声明及 MIT 许可证的全部内容。如果您不同意其中任何条款,请立即停止使用并彻底删除本软件的所有相关文件。

1. “按原样”提供,不作任何保证 (AS-IS, WITHOUT ANY WARRANTY) 本软件按“原样”(AS IS) 提供,不附带任何形式的明示或暗示的保证,包括但不限于对软件的商业适用性 (MERCHANTABILITY)特定用途适用性 (FITNESS FOR A PARTICULAR PURPOSE)非侵权性 (NON-INFRINGEMENT) 的保证。作者不保证软件能满足您的所有需求,不保证软件运行不会中断或不出现任何错误,也不保证软件中的任何缺陷 (Bug) 都将被修正。所有条款以软件附带的 MIT 许可证 原文为准。

2. 核心功能与潜在风险告知 (CORE FUNCTIONALITY & POTENTIAL RISKS) 本软件的核心功能必然涉及全局键盘监听 (用于实现快捷码、快捷键功能) 和剪贴板内容读写 (用于粘贴及历史记忆功能)。您必须清楚地认识到这些功能存在的潜在风险:

  • 键盘监听风险: 为了实现快捷码功能,程序会在后台监听您的键盘输入。尽管程序的设计初衷仅为匹配您设定的触发码,但该机制在技术原理上可以访问到您的全局键盘输入。
  • 剪贴板隐私风险: 当“剪贴板记忆”功能开启时,程序会读取并以明文形式记录您复制到系统剪贴板的文本内容。这意味着,如果您复制了密码、银行卡号、身份证、私密对话等任何敏感信息,这些信息也可能被程序记录下来。
  • 安全软件警告: 由于上述功能的敏感性,部分安全软件、杀毒软件或系统防护工具可能会将本软件标记为“键盘记录器”、“风险软件”或“恶意程序”。这属于正常现象,请您基于对本项目开源代码的信任自行判断并选择是否“信任”或“允许运行”。

3. 风险自负与责任限制 (ASSUMPTION OF RISK & LIMITATION OF LIABILITY) 您明确理解并同意,使用本软件所引发的一切后果和风险,包括但不限于数据丢失或损坏、利润损失、业务中断、个人信息泄露、与其他软件的冲突、系统不稳定或崩溃等,完全由您本人承担。在任何法律允许的最大范围内,本软件作者或任何贡献者在任何情况下均不对任何因使用、无法使用或滥用本软件而导致的任何直接、间接、偶然、特殊、惩戒性或后果性的损害负责,即使已被告知可能发生此类损害。

4. 用户数据与隐私保护 (USER DATA & PRIVACY) 作者高度重视用户隐私。本软件为纯本地离线工具,您使用软件产生的所有数据,包括词库文件 (.md)、配置文件 (config.ini)、剪贴板历史记录等,均只会存储在您自己的电脑本地硬盘上。本软件不会以任何形式主动收集、存储或上传您的任何个人信息或使用数据到任何网络服务器。软件运行无需联网。

5. 合法合规使用承诺 (LAWFUL & COMPLIANT USE) 您承诺将在遵守您所在国家或地区所有适用法律法规的前提下使用本软件。严禁将本软件用于任何非法目的,包括但不限于窃取商业秘密、侵犯他人隐私、发送垃圾信息等任何违法违规行为。任何因您的非法使用或违规操作而导致的法律责任和后果,均由您自行承担,与本软件作者无关。此外,如果您在组织或公司环境(如工作电脑)中使用本软件,您有责任确保此行为符合该组织的信息安全策略和规定。

6. 开源透明与代码审查 (OPEN SOURCE & CODE AUDIT) 本软件是一个开源项目,所有源代码均在 GitHub 公开。我们鼓励并建议有能力的用户在安装使用前,自行审查代码,以确保其安全性和功能符合您的预期。作者保证其发布的官方版本不包含任何已知的恶意代码,但无法保证软件绝对没有缺陷。

7. 官方渠道与安全下载 (OFFICIAL CHANNEL & SECURE DOWNLOAD) 本项目的唯一官方发布渠道为 GitHub Releases 页面 (https://github.com/msjsc001/QuickKV/releases)。作者不对任何从第三方网站、论坛、社群、个人分享等非官方渠道获取的软件副本的安全性、完整性或一致性作任何保证。为避免潜在的恶意代码注入或版本篡改风险,请务必通过官方渠道下载。

8. 无专业支持义务 (NO OBLIGATION FOR SUPPORT) 本软件为免费提供,作者没有义务提供任何形式的商业级技术支持、更新、用户培训或后续服务。作者可能会通过 GitHub Issues 等社区渠道提供帮助,但这完全出于自愿且不作任何承诺,作者保留随时忽略或关闭任何问题的权利。

再次强调:继续使用本软件,即表示您已确认阅读、理解并同意遵守上述所有条款以及 MIT 许可证的全部内容。


用户手册

1. 安装与配置

步骤一:安装依赖

(如果使用exe程序在 https://github.com/msjsc001/QuickKV/releases 下载即可,无须使用 Python 配置,可跳过步骤一二三)

本工具使用 Python 编写,需要您先安装 Python 环境(推荐 Python 3.8+)。然后,在终端中运行以下命令安装所需库:

pip install PySide6 pyperclip pypinyin

步骤二:准备文件

  1. 将代码保存为 quick_kv.py
  2. quick_kv.py 所在的目录下,创建一个名为 词库.md 的文件。如果文件不存在,程序首次启动时会自动为您创建示例。

步骤三:编辑词库

用任何文本编辑器打开 .md 词库文件。程序支持两种格式的词条:

1. 单行词条 每一行以 - (减号 + 空格) 开头即可。

- 我的个人邮箱是 my-email@example.com
- 公司地址:XX省XX市XX区XX路XX号

2. 多行词条 (父子内容)- 开头的行作为“父级”(用于搜索),其下方所有不以 - 开头的行都会被视为“子内容”。

- 这是一个父级
这是它的子内容第一行
  这也是子内容(支持缩进和空行)

- 这是一个模板标题 ``不出现``
  这是模板的第一行内容
  这是模板的第二行内容
  • ``不出现`` 语法: 如果您希望在粘贴时只输出子内容,而忽略父级(例如模板的标题),只需在父级行末尾加上 ``不出现`` 即可。

3. 快捷码 (高级功能) 快捷码是一种无需呼出搜索框即可快速粘贴内容的方式。

  • 设置快捷码: 在词条的父级行末尾,添加 ``k:触发码`` 语法。触发码可以是任何字母、数字或符号的组合。
    - 我的个人邮箱 ``k:mymail``
    - 项目路径 ``k:p1;``
  • 使用快捷码:
    1. 在系统托盘菜单中,勾选“开启快捷码”。
    2. 在任何文本编辑器中,直接输入您设置的触发码(例如 mymailp1;)。
    3. 程序会自动删除您输入的触发码,并将其替换为对应的词条内容。

2. 使用说明

  1. 启动程序:

    在终端中,进入 quick_kv.py 文件所在的目录,然后运行:

    python quick_kv.py
  2. 呼出窗口: 在任何需要输入文本的地方,按下快捷键 Ctrl + Space

  3. 搜索与选择:

    • 在搜索框中输入关键词进行搜索。
    • 使用 上/下 方向键或鼠标选择结果。
    • 按下 回车 键或用鼠标单击词条完成选择。
  4. 管理程序: 在系统托盘区找到程序图标,右键点击可进行所有高级操作,包括:

    • 启用/禁用快捷键: 总开关。
    • 间隔时间自动重启: 设置程序自动重启以保持稳定。
    • 词库选择: 管理你的多个词库文件。
    • 搜索选项: 切换“多词搜索”和“拼音首字母匹配”。
    • 剪贴板记忆: 开启或关闭剪贴板历史功能。
    • UI设置: 切换主题、调整字体大小。
    • 退出: 关闭程序。

开发者指南

1. 项目架构

  • MainController (主控制器): 应用程序的大脑,负责协调各组件、注册全局热键、监控文件变化、管理系统托盘菜单等。
  • SearchPopup (搜索弹窗UI): 负责所有图形界面,包括无边框窗口的构建、拖拽缩放的实现、主题样式的应用等。
  • WordManager (词库管理器): 负责词库的读取、排序和搜索(包括文本、多词和拼音首字母)。
  • SettingsManager (设置管理器): 负责 config.ini 配置文件的读写。
  • StyledItemDelegate (样式代理): 负责列表项的自定义绘制,实现更精细的UI控制(如多行渲染和颜色区分)。
  • ShortcutListener (快捷码监听器): 使用 pynput 库在独立线程中实现全局键盘监听,用于捕获用户输入并匹配快捷码。

2. 核心技术点

  • 原生快捷键与线程安全: 使用 ctypes 调用 Windows 原生 API (RegisterHotKey) 在一个独立的 threading 线程中监听全局热键。当热键被触发时,通过 PySide6 的信号/槽机制安全地通知主GUI线程执行相应操作,做到了响应迅速且线程安全。
  • 文件监控与防抖: 使用 QFileSystemWatcher 监控文件变化,并结合 QTimer 实现“防抖”,避免文件在短时间内被多次保存时触发重复的重载操作。
  • 无边框窗口交互: 通过重写 mousePress/Move/ReleaseEvent 事件实现窗口拖拽,并通过判断鼠标位置和 _update_resize_cursor 方法动态改变光标,实现各方向的窗口缩放。

3. 项目结构

.
├── quick_kv.py         # 主程序脚本
├── 词库.md             # 默认用户词库文件
├── 剪贴板词库.md       # 剪贴板历史记录文件
├── config.ini          # 配置文件
├── icon.png            # 应用程序图标
├── cache.json          # 词条缓存文件,实现零延迟搜索
└── README.md           # 项目说明文档

4. 构建可执行文件 (Windows)

本项目使用 PyInstaller 进行打包。

  1. 安装 PyInstaller:

    pip install pyinstaller
  2. 执行打包命令: 在项目根目录下,运行以下命令来创建一个独立的 .exe 文件:

    pyinstaller --noconsole --icon="icon.png" --add-data "icon.png;." quick_kv.py
    • --noconsole: 运行时不显示命令行窗口。
    • --icon: 为 .exe 文件和系统托盘指定图标。
    • --add-data: 将图标资源打包。词库.mdconfig.ini 会在首次运行时自动生成,无需打包。
  3. 获取结果: 打包成功后,您可以在 dist/quick_kv 目录下找到生成的 quick_kv.exe 文件。


更新日志

  • ✔️1.0.5.41 修复:词库更新时及时读取内容

    • 加载的词库文件有更新或变动时,在搜索框搜索不出更新或变动的内容
  • ✔️1.0.5.40 修复:搜索时剪贴板词库内容重复2次。 优化: ctrl+空格 后弹窗默认不再显示词库内容(极致性能考虑)。

    • 剪贴板记忆开启的时候搜索会出现两次相同内容
    • 另外如果是"剪贴板词库-勿删.md"的词右键不可再加入到 “剪贴板词库-勿删.md”
    • ctrl+空格 后弹窗默认不再显示词库内容(极致性能考虑)。
  • ✔️1.0.5.39 声明与许可协议与帮助文档

    • ✔️1.0.5.39.1 声明与许可协议(变更版本、新设备首次运行都会提示,并内嵌在软件内的系统托盘菜单内)
      • 您同意协议后的设备ID,被记录在了与 程序 同一个目录下的config.ini文件中。
        • accepted_disclaimer_info = {"id": "一个哈希值", "version": "当前软件版本号"}
    • ✔️1.0.5.39.2 帮助文档
      • 使用一个本地的md和PDF文件,在系统托盘菜单"帮助"能打开它
  • ✔️1.0.5.38 修复:剪贴板内容到词库的二次复制

  • ✔️1.0.5.37 修复与优化:剪贴板开启后,搜索不到剪贴板的内容,修复并优化剪贴板词库位置。

  • ✔️1.0.5.36.1 再优化高亮问题、匹配排序问题

  • ✔️1.0.5.36 匹配算法打磨、🔴从pypinyin 库换用为 pypinyin-dict 库、重构缓存逻辑、重写搜索算法

    • 因为引用库有错误的多音字,有的错误匹配问题无法修复
    • pypinyin 库有罕见发音的多音“污染”所以换用pypinyin-dict库
  • ✔️1.0.5.35 tab缩进距离远(一个TAB应该四个空格一样距离)

  • ✔️1.0.5.34 🔴匹配内容高亮(多词多色)

  • ✔️1.0.5.33 软件有版本更新时,自动重建 cache.json

  • ✔️1.0.5.32 修复与优化:搜索匹配问题

    • 1、优化为**“动态评分制”模糊匹配算法**(VS Code所使用的)
      • 首字母奖励连续匹配奖励间隔惩罚位置奖励
    • 2、使缓存cache.json 与优化后的方案契合
    • 3、修复匹配不相关内容也匹配问题
  • ✔️1.0.5.31 加固:进行防御性加固(稳定性加固)

    • 线程管理 (Threading): 程序中 NativeHotkeyManager 和 ShortcutListener 都在独立的线程中运行。如果线程启动、停止或异常处理不当,可能导致资源泄露或程序无法正常退出。
      • 线程管理:确保热键和快捷码的后台监听线程能够被更安全、更干净地停止。
    • 文件 I/O (File Input/Output): 程序频繁读写配置文件、词库文件和缓存。如果文件被意外删除、损坏(例如,JSON格式错误)或无权限访问,程序可能会崩溃。
      • 文件 I/O:确保程序在配置文件或缓存文件损坏时,能够优雅地处理并使用默认值启动,而不是直接崩溃。
    • 外部进程调用 (External Process): 通过 PowerShell 执行粘贴操作依赖于外部环境。如果 PowerShell 执行失败或被安全软件拦截,虽然不至于让主程序崩溃,但会导致功能失灵,我们可以增加日志来记录这类问题。
      • 外部进程调用:确保调用 PowerShell 进行粘贴时,即使失败也不会影响主程序的稳定性。
    • 全局钩子 (Global Hooks)pynput 作为一个全局键盘监听器,如果其回调函数 _on_press 内部发生未捕获的异常,可能会导致监听线程停止工作,使得快捷码功能在用户无感知的情况下失效。
      • pynput 键盘监听:确保回调函数中的任何错误都不会导致监听中断。
  • ✔️1.0.5.30 修复:“记忆剪贴板”相关功能导致的系统高占用死机问题

    • 将剪贴板监控功能从有风险的“定时器轮询”模式重构为稳定高效的“事件驱动”模式。现在,程序只会在剪贴板内容真正发生变化时才做出反应,这从根本上解决了导致程序卡死的资源竞争问题。
  • ✔️1.0.5.29 修复:搜索缓存带来的拼音首字和英文搜索分离的问题。

  • ✔️1.0.5.28 修复:从剪贴板词库添加到别库的词条删除或编辑时失败的问题。

  • 1.0.5.27.5 ✔️修复1:剪贴板功能记忆自己的输出 ✔️ 修复2:"快捷码"和"不出现"语法同时用时互相不兼容。 ✔️优化:界面左上角软件名和版本号颜色弱化。✔️🔴1.0.5.27.5 优化:建立自动搜索缓存大词库响应瞬间完成。✔️优化:软件关闭后加强卸载钩子。

    • ✔️1.0.5.27.1“剪贴板文字记忆”记忆软件自己输出的内容
      • 问题,在开启系统托盘菜单“剪贴板文字记忆”功能后使用快捷键“ctrl+空格” 唤起软件界面 选择好词条输出内容 ,输出的内容会被“剪贴板文字记忆”记忆,“剪贴板文字记忆”不应该在任何情况下记忆QuickKV自己输出的内容,比如点击窗口界面词条的输出和在系统托盘菜单“开启快捷码”后用户使用快捷码的输出,都不应该被“剪贴板文字记忆”记忆。
      • 解决,程序主动向剪贴板写入内容后,临时“无视”一次由该写入操作引发的剪贴板变化。
    • ✔️1.0.5.27.2 问题,用输入行尾的功能性语法时功能冲突。
      • 在系统托盘菜单"开启快捷码"被开启时,词条内"快捷码"语法"k:xxx"在"不出现"语法前方,"快捷码"功能则会失效。
      • 改进:行尾的功能语法不管互相什么位置,应该互相兼容不冲突。
    • ✔️1.0.5.27.3 优化:另外关闭软件后加强卸载程序的键盘钩子,避免干扰系统。
    • ✔️1.0.5.27.4 优化:“ctrl+空格” 唤起软件界面 左上角的软件名和版本号的文字颜色,视觉上的弱化(白天和夜晚模式都是)使其更柔和。
    • ✔️1.0.5.27.5 优化:建立缓存,大大优化菜单搜索效率,使得搜索响应接近瞬时完成在加载词库时,程序会一次性计算好所有词条的拼音、小写等信息并存起来。搜索时直接使用,速度极快。 并且自动检测到词库和词库内容有变动是根据变动内容精确的更新缓存。 建立cache.json文件进行缓存工作。
  • 1.0.5.26 🔴新功能,快捷码 K:xxx

    • 该功能在系统托盘菜单默认关闭
    • 加入了一个"k:xxx"语法
    • 这个"k:xxx"语法和 "不出现"一样需要在词条的行尾,是特定的一种功能识别。
    • "k:" 组合后的字母或字符等于会识别用户在键盘输入的字母或字符,字母大小写不敏感识别,大写小写都可。
      • 比如设定的是 "- 这是一个词条 k:xxx ",如果检测到用户键盘输入"xxx"后则直接输出"这是一个词条"文字。
      • 比如设定的是"- 这是词条内容 k:23; ",如果检测到用户键盘输入"23;"后则直接输出"这是词条内容"文字。
      • 如果有父子级的,则输出父子级,总之和正常选中词条输出功能一致,只是识别用户键盘输入用语法来完成的, k:xxx 这语法和其内容任何时候都是不输出的但用户可以灵活编辑。
  • 1.0.5.25 修复:右键词条修改后点ok没任何改变。

  • 1.0.5.24 修复:多音字的识别问题

    • 对中文多音字,软件里只会识别多音字的其中一个拼音首字母。现在每个字的多种音的首字母都能被识别出来。
  • 1.0.5.23 修复:匹配问题

    • 所有关键词要么都通过文本匹配成功,要么都通过拼音匹配成功。
    • 正确的逻辑应该是:对于每一个关键词,只要它能通过文本或拼音中的任意一种方式匹配成功即可。
  • 1.0.5.22 新功能:自定义快捷键

    • 在托盘菜单原“启用快捷键”选项下方新加一个“自定义快捷键”,用户点击“自定义快捷键”后能让用户能修改“ctrl+空格”
      • 请你帮我设计一个,点击“自定义快捷键”修改自定义快捷键的功能窗,其中有一个按钮“恢复ctrl+空格”在里边,其余的请你帮我设计好,不需要太复杂,简单能定义快捷键即可。
  • 1.0.5.21 修复:主界面四角不透明问题

    • 1.0.5.21 修复:主界面四角不透明问题-
  • 1.0.5.20 修复:在输入框或界面选择菜单右键"添加词库"不能显示"自动载入的md词库"。

  • 1.0.5.19 优化搜索结果,按最匹配排序

    • 完全匹配 的词条排名最高。
    • 以查询词开头 的词条排名靠前。
    • 与查询词长度相近的词条排名更靠前。
      • 优化长度惩罚机制,确保更短、更精确的匹配项获得更高的分数。
    • 拼音匹配的结果权重会低于直接的文本匹配。
    • 剪贴板内容和词库平级
  • 1.0.5.18 新加功能:“程序自动载入目录下特定文件夹MD词库,载入后可以有选择的选用”

    • 这个功能和现有的托盘菜单类的词库选择-添加md词库类似,只是不需要用户手动添加词库,在对应目录下的.md文件程序会自动添加。
    • 1、程序会自动识别载入根目录下MD词库-需自动载入的请放入文件夹内的任意文件名+.md后缀的文件为词库(后边称为.md文件)
      • 如果没有MD词库-需自动载入的请放入文件夹,程序会自动建立一个,程序每次启动时都会检查是否有这个文件夹。
      • 如果MD词库-需自动载入的请放入文件夹被用户添加进.md文件,就会被程序识别使用,并根监控变化。
    • 2、在系统托盘一级菜单词库选择位置下边加入一个自动载入的md词库菜单
      • 程序会自动识别MD词库-需自动载入的请放入文件夹里的.md文件载入到程序内作为词库使用,同时也会把识别到的.md文件载入到这个自动载入的md词库菜单内部,载入到自动载入的md词库菜单的词库就和词库选择-添加md词库功能一致具备同样的功能。
      • 如果MD词库-需自动载入的请放入文件夹内的.md文件没有了或被改名了,程序会自动去除这个系统托盘菜单自动载入的md词库菜单内部下的对应.md词库,如果有新加的则会自动新加入,加入后默认开启使用。
      • 自动载入的md词库菜单内显示出来的词库菜单,每项前,都会有一个勾选框,用户可以勾选需要使用的,被勾选的会被开起使用,未勾选的则不会被使用。自动载入的md词库菜单内的词库菜单只有前边勾选框和文件名,没有其它选项。
      • 自动载入的md词库菜单内部第一行为打开-md词库文件夹,用户点击后会打开MD词库-需自动载入的请放入文件夹。
      • 以上的操作和载入都会被程序记住设置。
  • 1.0.5.17 修复:剪贴板记忆满后无法更新问题

  • 1.0.5.16 优化UI:更柔和的调色

  • 1.0.5.15 减法:去除意义不大的功能界面图钉、优化UI

    • 减法:取消图钉功能
    • UI:界面菜单加入分割线,使内容更易区分、加入版本号在界面左上角显示
  • 1.0.5.14 加强:长词条删除时界面超出显示器外,加入滚动条。

  • 1.0.5.13 加强:剪贴板文字记忆 内容被移动到新词库时 去除“剪贴板词库.md”

  • 1.0.5.12 修复:启用剪贴板记忆时软件复制软内容会出现空行

    • 加强:软件输出默认使用ctrl+v,用户可选用ctrl+shift+v、ctrl+v、模拟打字
  • 1.0.5.11 修复:启用剪贴板记忆时软件复制软内容会出现空行

    • 现在有一个新的问题也就是软件在我使用"剪贴板记忆"的时候复制“带有软换行的内容”或多行内容时会自动出现一些空行,使用统一 \n vs \r\n的方式修复
  • 1.0.5.10 修复:图钉模式下,内容未贴好就转回程序

    • 让 PowerShell 采用“shift+ctrl+v”的方式来输入内容
    • 图钉模式时让焦点不回到界面,界面只做一个“调色板”。
  • 1.0.5.9 修复:无法贴出内容、取消窗口在屏幕边缘上下翻

    • 修复无法贴出内容
      • ctypes库能稳定的识别快捷键,但不能粘贴 - 通过 PowerShell 调用 .NET 的 SendKeys API 来执行粘贴
    • 取消窗口在屏幕边缘上下翻
  • 1.0.5.8 修复:快捷键重构

    • 根本性修复: 彻底重构了快捷键实现方式,弃用原有的 keyboard 库,改为使用 Windows 原生 API (RegisterHotKey) 进行全局热键注册。
      • 解决了什么问题? 解决了程序长时间运行后,因键盘钩子不稳定而导致的快捷键完全失效的核心问题。
      • 带来了什么好处? - 极高的稳定性: 新方案由操作系统直接调度,稳定可靠,不再需要“定时重建钩子”等临时性维护手段。 - 更高的效率: 几乎零资源占用,仅在快捷键按下时才响应。
      • 代码变更: 所有与旧 keyboard 库相关的功能,包括“重建快捷键”菜单和定时器,均已被彻底移除,代码更精简、更健壮。
  • 1.0.5.7 修复:三个问题

    • 修复了在开启剪贴板记忆功能后,无法搜索到剪贴板历史内容的问题。
    • 修复了对剪贴板历史条目右键时,缺失“添加到词库”选项的问题。
    • 修复了搜索窗口被唤起时,输入光标没有自动聚焦到搜索框的问题。
  • 1.0.5.6 添加词库时需要选择库

    • 功能增强: 在输入框右键“添加到词库”时,如果存在多个词库,会弹出选择列表,让用户决定将新词条添加到哪个具体的 .md 文件中。
  • 1.0.5.5

    • 新功能:快速打开词库
      • 在“词库选择”菜单中,为每个词库增加了一个“打开”按钮,可以快速在文件浏览器中定位到该词库文件,方便编辑。
  • 1.0.5.4

    • 新功能:增强稳定性
      • 在系统托盘菜单中增加了“间隔时间自动重启”子菜单。
      • 用户可以启用/禁用此功能(默认关闭),并自由设定重启的间隔时间(默认3分钟)。
      • 提供“立即重启”选项,方便手动重启程序。
    • 修复
      • 优化了重启逻辑,确保重启命令能被正确执行。
  • 1.0.5.3

    • 新功能:剪贴板文字记忆
      • 在系统托盘增加“剪贴板文字记忆”功能,默认关闭。
      • 用户可开启后,程序会自动记录剪贴板历史。在搜索框为空时,会优先展示剪贴板历史记录。
      • 支持自定义记忆条数(默认10条)和一键清空所有历史。
      • 剪贴板历史条目同样支持右键菜单,可将其“添加到词库”、进行“编辑”或“删除”。
      • 剪贴板历史被保存在独立的 剪贴板词库.md 文件中。
  • 1.0.5.2

    • 新功能:多词库支持
      • 现在可以在“词库选择”菜单中添加任意多个 .md 文件作为词库。
      • 每个词库都可以被独立启用或禁用,方便用户根据场景切换词库。
      • 支持从菜单中直接移除词库(不会删除本地文件)。
      • 如果词库文件在本地被删除,程序会自动将其从列表中移除。
  • 1.0.5.1

    • 新功能:界面内词条管理
      • 在搜索框和结果列表区域增加了右键上下文菜单。
      • 现在可以直接在输入框中输入内容后,右键选择“添加到词库”。
      • 可以直接右键点击结果列表中的词条,进行“编辑”或“删除”操作。
      • 编辑功能会弹出一个与主界面风格统一的文本编辑窗口。
  • 1.0.4.1

    • 修复与优化
      • 引入了自动和手动的快捷键钩子重建机制,以解决程序长时间运行后快捷键失效的问题。
  • 1.0.3

    • 1、取消";"复制内容快捷键启动界面功能,因为会导致失焦,且实用意义不大
    • 2、系统托盘内添加了总开关(快捷键开关)
  • 1.0.2

    • 1、利用利用每个字的拼音首字母,进行搜索,的功能
      • 比如在输入框输入 拼音字母 “qd”就能找到“请定”之类的字,输入的越多匹配的也越精确(按理匹配的内容就越少),这个功能请给一个系统托盘的勾选框叫"拼音首字母匹配",默认开启。"
    • 2、";"复制内容快捷键启动界面
      • 如果用户点击";"键(有时也是";"),就使用 ctrl+shift+左键 的方法复制文本,复制后需要1次删除键去除选择的文本,因为文本后边会转移到输入框,而后自动开启软件界面填入复制的文本。这个功能请给一个系统托盘的勾选框叫";键复制查询"默认开启。
      • 这个功能一般建议配合拼音首字母方法用。
  • 1.0.1

    • 排序按字母整理(词库和搜索)
      • 词库和搜索结果内自动按前缀(名字)排序整理(中文会识别拼音首字母排序)
      • 避免了大量自加词后,词库和搜索可读性差的问题,
      • 词库排序整理 在软件关闭时检测到词库文件有变化后才会进行(用内容哈希校验),且软件被关闭后,这样避免和用户输入词库冲突,也为性能考虑。
  • 1.0.0

    • 新功能
      • 版本提示 - 系统托盘菜单,加入版本标识 QuickKV_1.0.0 - 搜索:打空格多词包含搜索 - 也叫多关键词搜索,逻辑搜索 (AND Search)
      • UI修改 - 托盘菜单和系统界面UI风格统一 1150
      • 修复bug - 窗口 ctrl+空格 前置时无法切换日夜模式 - 修复无法窗口拖拽放大缩小
      • 构建 - 构建了win1.0版

About

QuickKV是一款只专注于中文自动补全文本拓展的开源、轻量级、高效、零门槛、易迁移、轻度剪贴板记忆、高可定制化、纯净无任何商业目的快捷输入增强工具。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages