vscode 的 audio cues: line has error 仅在光标移至已被语言服务器标记的错误行时触发提示音,不主动扫描或监听语法;需满足 accessibilitysupport 非 off、audiocues.enabled 为 true、错误已标记为 error 级别,且系统音量正常、非远程无音频通道。

VSCode 本身不会“听出”错误代码行,也不会主动播报哪一行有语法错误;所谓“听到错误行”,其实是开启 Audio Cues: Line Has Error 后,当你把光标停在已被标记为报错的那行时,才触发提示音——它不分析、不扫描、只响应已存在的编辑器标记。
为什么光标停在报错行没声音?先检查这三个前提
音频提示不是魔法,它依赖底层状态和配置协同生效:
-
editor.accessibilitySupport必须不是off(可在设置里搜该配置项,设为on或auto) -
audioCues.enabled必须为true(仅开子项如onError不生效) - 错误必须已被语言服务器标记:比如 Python 文件里写了
prin("hello"),要等 Pylance/Pyright 报完错、红色波浪线出现后,光标移上去才可能响
Audio Cues: Line Has Error 的实际行为边界
这个功能不是实时语法监听器,它的触发逻辑很具体:
- 只在你**手动将光标移动到已有错误标记的行**(含列)时触发,不会因保存/格式化自动跳转并发声
- 如果错误行被折叠(比如在函数体内),光标停在折叠行上通常不响,得展开后再移入
- 部分语言服务器(如旧版 ESLint 集成)可能只报
Warning不报Error,而该音频 cue 默认只响应Error级别,需额外开启Audio Cues: Line Has Warning - 终端里运行报错(如
python main.py抛异常)不算数——那是进程输出,和编辑器内的错误标记无关
终端报错想听声?用 Audio Cues: Terminal Bell + 响铃字符
如果你真正想要的是“程序崩溃时听见一声提醒”,这条路更直接:
- 先确保终端支持响铃:Linux/macOS 默认可用
echo -e "\a";Windows Terminal 需在设置中打开Enable bell sound - 在 VS Code 设置中开启
Audio Cues: Terminal Bell(注意不是Terminal Command Finished) - 写脚本时,在关键位置加响铃:比如 Python 脚本末尾加
print("\a", end=""),或 Node.js 里用process.stdout.write("\x07") - ⚠️ 不要依赖
code-runner插件自带的“运行完成音效”——它早已失效,且与 VS Code 原生 audio cues 无关联
最容易被忽略的一点:所有音频提示都受系统音量控制,且某些远程开发场景(如 SSH 到 Linux 服务器再启 VS Code)下,声音根本不会传回本地——这时候再调设置也没用,得换成本地开发或改用视觉反馈(如高亮+状态栏文字)。











