ctrl+z撤销修复

VSCode (Scoop 便携模式) 的 ctrl+z 撤销修复 & 配置文件残留清理

正确做法(总结)

  1. 确认 VSCode 安装方式:Scoop 安装的 VSCode 默认是便携模式,会在 scoop\apps\vscode\current\data\ 下存储配置,而不是 %APPDATA%\Code\User\
  2. 真实配置路径:scoop\persist\vscode\data\user-data\User\keybindings.json(Scoop 通过 persist 保持配置跨版本)
  3. 问题根因:真实 keybindings.json 中只有 ctrl+z z 和弦键,没有 ctrl+z → undo 的独立绑定,导致按下 ctrl+z 时 VSCode 等待和弦第二键,超时后显示 "no solution"
  4. 修复方案:在正确的 keybindings.json 中添加:
    • ctrl+z → undowhen: editorTextFocus && !editorReadonly
    • ctrl+shift+z → redo(相同 when 条件)
    • ctrl+z z → opencode.openTerminal 加上 when: !editorTextFocus,避免编辑区干扰
  5. 排查工具:code --list-extensions 看扩展列表;检查 scoop\apps\vscode\current 是否有 data\ 目录来判断是否便携模式

排查过程

  1. 先读了 %APPDATA%\Code\User\settings.jsonkeybindings.json,以为这是真实配置
  2. 添加了 ctrl+z → undo 和 ctrl+shift+z → redo,用户测试确定无效,仍显示 "no solution"
  3. 调试:将 ctrl+z 改为 editor.action.commentLine 测试,用户确认仍无效 → 断定改错了文件
  4. 排查 VSCode 安装方式:用户用 Scoop 安装,Get-Command code 显示路径为 scoop\shims\code.cmd
  5. 检查 scoop\apps\vscode\current 存在 data\ 目录(便携模式标志)
  6. 找到真实配置:scoop\persist\vscode\data\user-data\User\(Scoop 持久化目录)
  7. 真实 keybindings.json 只有 ctrl+z z 和弦键→opencode.openTerminal,无独立 undo 绑定
  8. 补充:ctrl+y 删除行来自 k--kato.intellij-idea-keybindings 扩展,无需改动
  9. 最终在正确路径写入 keybindings,用户确认修复

配置文件残留清理

因 Scoop 便携模式,旧版安装的配置文件已废弃,共清理约 4.9 GB 残留:

  • %APPDATA%\Code(1.25 GB)→ VSCode 便携模式后废弃
  • %APPDATA%\JetBrains\PyCharm2025.3 + 3 个旧版(113 MB)→ PyCharm 已卸载
  • %LOCALAPPDATA%\JetBrains\PyCharm2025.3(3.2 GB)→ 同上
  • scoop\persist\pycharm(406 MB)→ Scoop persist 残留
  • %USERPROFILE%\.vscode\extensions(少量)→ 便携版扩展在 data\extensions
  • %APPDATA%\npm(0 MB)→ 已换 Scoop nodejs

每个目录清理后保留了目录本身,并在其中放入 README.txt 说明情况。