• v2.0.0 bb62226ef6

    v2.0.0 Stable

    gavin released this 2025-11-04 17:51:40 +08:00 | 12 commits to main since this release

    发布日期: 2025-11-04


    版本概述

    版本 2.0.0 是一个重要的里程碑版本,为 Obsidian Vim 输入法自动切换插件带来了重大改进。此版本包含输入法状态管理系统的完全重写、增强的可靠性以及全面的文档。

    新增内容

    主要功能

    输入法状态记忆系统

    插件现在具备智能状态记忆系统,能够记住您的输入法偏好:

    • 智能记忆:自动记住退出 Insert 模式时使用的输入法(中文/英文)
    • 自动恢复:再次进入 Insert 模式时,插件会恢复上次的输入法状态
    • 混合输入支持:无缝处理在同一编辑会话中中英文输入法切换的场景

    示例工作流程

    1. 按 'i' → 进入 Insert 模式 → 恢复中文输入法(如果上次是中文)
    2. 输入中文内容
    3. 手动切换到英文输入法,继续输入
    4. 按 ESC → 保存"英文"作为最后状态
    5. 再次按 'i' → 自动恢复英文输入法
    

    关键 Bug 修复

    ESC 键响应问题
    • 修复内容:ESC 键需要多次按下才能切换输入法
    • 解决方案:实现事件捕获模式,在最早阶段拦截按键
    • 效果:首次按下 ESC 即可立即切换到英文输入法
    Insert 模式干扰问题
    • 修复内容:在 Insert 模式下输入字符(输入 'i'、'a'、'o' 等)触发不必要的输入法切换
    • 解决方案:为键盘事件处理器添加 Vim 模式验证
    • 效果:Insert 模式下的正常文本输入不再被打断

    性能优化

    事件处理优化
    • 捕获模式:键盘事件监听器使用 { capture: true }
    • 降低延迟:输入法切换响应时间快 10-20ms
    • 智能检测:仅在必要时切换输入法,避免冗余操作
    三重检测机制

    通过三层检测增强可靠性:

    1. 主要检测:键盘事件捕获(最快,最高优先级)
    2. 辅助检测:CodeMirror vim-mode-change 事件
    3. 兜底检测:100ms 轮询作为安全保障

    代码质量

    代码库清理
    • 移除约 50 行未使用的测试代码
    • 减少插件体积约 2KB
    • 提高代码可维护性和可读性
    简化日志输出
    • 减少 70% 的控制台输出
    • 保留关键的状态转换日志
    • 更清晰的调试信息,便于故障排查

    文档

    全面的文档
    • README.md:详细的中文文档,包含使用示例
    • README_en.md:完整的英文文档
    • CHANGELOG.md:详细的中文版本历史
    • CHANGELOG_en.md:完整的英文更新日志
    • Mermaid 图表:可视化工作流程说明

    技术细节

    架构改进

    状态管理

    • currentVimMode:追踪当前 Vim 模式(normal/insert/visual)
    • lastInsertModeIMStatus:存储上次 Insert 模式的输入法状态
    • imStatus:维护当前输入法状态

    检测系统

    • 事件捕获阶段拦截
    • 使用 fcitx-remote -n 实时验证输入法状态
    • 异步输入法切换操作

    兼容性

    平台支持

    • macOS:通过 fcitx-remote-for-osx 完全支持
    • Linux:通过 fcitx 完全支持
    • Windows:通过 AutoHotKey 版本支持

    Obsidian 兼容性

    • 兼容最新版本的 Obsidian
    • 同时支持 CodeMirror 5 和 CodeMirror 6

    升级指南

    现有用户

    从 v1.x 升级

    cd /path/to/your/vault/.obsidian/plugins/vim-im-switch/
    git pull origin main
    npm install
    npm run build
    

    然后重启 Obsidian 以激活新版本。

    重要提示

    • 升级过程中会保留设置
    • 无需更改配置
    • 建议���级前备份您的 vault

    新用户

    安装步骤

    1. 为您的平台安装 fcitx-remote
    2. 将插件克隆到 Obsidian 插件目录
    3. 在 Obsidian 设置中启用插件
    4. 配置输入法名称(可选)

    详细安装说明请参阅 README.mdREADME_en.md

    已知问题

    本版本无严重问题。如需故障排除,请参考:

    破坏性变更

    无。本版本与 v1.x 配置完全向后兼容。

    废弃功能

    本版本无废弃功能。

    未来规划

    计划在未来版本中实现的功能:

    • 支持更多输入法切换工具(im-select 等)
    • 可配置的快捷键绑定
    • Visual 模式输入法处理改进
    • 与 Obsidian 原生语言切换集成

    相关链接

    技术支持

    如果您遇到任何问题或有疑问:

    1. 查看 故障排除指南
    2. 搜索现有的 Issues
    3. 创建新的 issue 并提供详细信息

    许可证

    MIT License - 详见 LICENSE.txt


    Downloads