Alt+Z不生效主因是被系统或输入法拦截;验证需切英文输入法、在记事本测试或退出后台软件;推荐用Ctrl+K Ctrl+Z替代,开箱即用且避劫持。

Alt+Z不生效?先确认是不是被系统或输入法截胡了
VSCode 里的 Alt+Z(自动换行开关)不响应,90% 不是配置问题,而是被 Windows/macOS 系统、中文输入法(如搜狗、百度拼音)、辅助工具(Zoom、TeamViewer)提前吞掉了。它没有系统级权限,纯靠事件监听——上游一拦截,VSCode 就收不到。
验证方法很简单:
• 切到英文输入法(Win+Space 或 Cmd+Space),再按 Alt+Z
• 在记事本或 TextEdit 里按 Alt+Z,看是否弹出任何响应
• 临时退出所有带全局热键的后台软件,再试
如果以上任一场景触发了响应,说明问题不在 VSCode,别折腾 keybindings.json。
想真正改掉 Alt 键绑定?必须进 keybindings.json 写 when 条件
图形界面(Ctrl+K Ctrl+S)只能做全局绑定,没法限定“只在 Python 文件里生效”或“只在编辑器有焦点时触发”。要让 Alt 组合键更精准,必须手动编辑 keybindings.json:
-
key值必须写成"alt+z",不能写"z+alt"或"alt z"—— 修饰键顺序固定为ctrl shift alt cmd -
when是关键:比如"when": "editorTextFocus && !editorReadonly"能排除 Git Diff、搜索结果页等只读区域 - 语言限定要写对 ID:
editorLangId == 'python',不是'py'或'Python';悬停右下角语言标识可确认真实值
用 Ctrl+K Ctrl+Z 替代 Alt+Z 更可靠
这不是妥协,是绕过拦截的成熟方案。VSCode 默认就绑定了 editor.action.toggleWordWrap 到这个 chord 组合(先按 Ctrl+K 松开,再按 Ctrl+Z),它天然避开绝大多数系统/输入法劫持,因为两段式序列极少被全局监听。
注意点:
• 不是同时按住四个键
• 它默认带 editorTextFocus 条件,所以在终端里无效是正常行为,不是 bug
• 无需任何配置,开箱即用
Alt 键冲突时提示“已被占用”,别急着覆盖
在快捷键界面右键某条目 → “更改键绑定”,输入新组合后弹出红色冲突提示,说明该键已被注册。这时候:
• 悬停在冲突项上,看 when 条件——比如 terminalFocus 表示只在终端生效,和你当前编辑 JS 文件不冲突
• Ctrl+Shift+T 这类键在 Chrome/iTerm/Windows 终端里是重开标签,VSCode 设了也大概率不触发
• Alt+F4(Windows)、Cmd+Q(macOS)属于系统级热键,VSCode 根本无法劫持
真正容易被忽略的是插件悄悄接管:Vim 插件常占 Ctrl+/,Prettier 可能抢 Shift+Alt+F。建议先禁用插件再测试,而不是直接删掉默认绑定。


















