VSCode (Scoop 便携模式) 的 ctrl+z 撤销修复 & 配置文件残留清理
正确做法(总结)
- 确认 VSCode 安装方式:Scoop 安装的 VSCode 默认是便携模式,会在
scoop\apps\vscode\current\data\下存储配置,而不是%APPDATA%\Code\User\ - 真实配置路径:
scoop\persist\vscode\data\user-data\User\keybindings.json(Scoop 通过 persist 保持配置跨版本) - 问题根因:真实 keybindings.json 中只有
ctrl+z z和弦键,没有ctrl+z → undo的独立绑定,导致按下 ctrl+z 时 VSCode 等待和弦第二键,超时后显示 "no solution" - 修复方案:在正确的 keybindings.json 中添加:
ctrl+z → undo(when: editorTextFocus && !editorReadonly)ctrl+shift+z → redo(相同 when 条件)- 给
ctrl+z z → opencode.openTerminal加上when: !editorTextFocus,避免编辑区干扰
- 排查工具:用
code --list-extensions看扩展列表;检查scoop\apps\vscode\current是否有data\目录来判断是否便携模式
排查过程
- 先读了
%APPDATA%\Code\User\settings.json和keybindings.json,以为这是真实配置 - 添加了 ctrl+z → undo 和 ctrl+shift+z → redo,用户测试确定无效,仍显示 "no solution"
- 调试:将 ctrl+z 改为
editor.action.commentLine测试,用户确认仍无效 → 断定改错了文件 - 排查 VSCode 安装方式:用户用 Scoop 安装,
Get-Command code显示路径为scoop\shims\code.cmd - 检查
scoop\apps\vscode\current存在data\目录(便携模式标志) - 找到真实配置:
scoop\persist\vscode\data\user-data\User\(Scoop 持久化目录) - 真实 keybindings.json 只有 ctrl+z z 和弦键→
opencode.openTerminal,无独立 undo 绑定 - 补充:
ctrl+y删除行来自k--kato.intellij-idea-keybindings扩展,无需改动 - 最终在正确路径写入 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 说明情况。