Files
vim-im-switch/RELEASE.md
2025-11-04 17:51:34 +08:00

176 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 版本发布说明 RELEASE NOTE
## v2.0.0
**发布日期**: 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 升级**
```bash
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.md](./README.md) 或 [README_en.md](./README_en.md)。
### 已知问题
本版本无严重问题。如需故障排除,请参考:
- [中文故障排除](./README.md#故障排除)
- [English Troubleshooting](./README_en.md#troubleshooting)
### 破坏性变更
无。本版本与 v1.x 配置完全向后兼容。
### 废弃功能
本版本无废弃功能。
### 未来规划
计划在未来版本中实现的功能:
- 支持更多输入法切换工具im-select 等)
- 可配置的快捷键绑定
- Visual 模式输入法处理改进
- 与 Obsidian 原生语言切换集成
### 相关链接
- [GitHub 仓库](https://github.com/yourusername/vim-im-switch)
- [问题追踪](https://github.com/yourusername/vim-im-switch/issues)
- [中文文档](./README.md)
- [English Documentation](./README_en.md)
- [更新日志](./CHANGELOG.md)
- [Changelog](./CHANGELOG_en.md)
### 技术支持
如果您遇到任何问题或有疑问:
1. 查看 [故障排除指南](./README.md#故障排除)
2. 搜索现有的 [Issues](https://github.com/yourusername/vim-im-switch/issues)
3. 创建新的 issue 并提供详细信息
### 许可证
MIT License - 详见 [LICENSE.txt](./LICENSE.txt)
---