terminal.integrated.enableBell 是控制 VS Code 内置终端响铃的核心开关,设为 false 可禁用 ASCII 响铃字符(如 \a 或 Ctrl+G)触发的“嘀”声;它仅影响内置终端,不干预系统音效、shell 层铃声或扩展提示音。

terminal.integrated.enableBell 是控制终端铃声的核心开关
VS Code 本身不发声,终端里“嘀”一声来自 terminal.integrated.enableBell 配置项。它决定终端是否响应 ASCII 响铃字符(\a 或 Ctrl+G),比如命令出错、补全失败、或某些脚本主动触发时。默认值是 true,也就是开启状态。
关闭方法很简单:打开设置(Ctrl+, ),搜索 terminal.integrated.enableBell,把勾去掉;或者直接在 settings.json 里加一行:
"terminal.integrated.enableBell": false
开启动作同理,设为 true 即可。注意这个开关只影响 VS Code 内置终端,不影响系统级键盘音或外部终端(如 Windows Terminal、iTerm2)。
为什么关了 setting 还有声音?可能被 shell 层覆盖
即使 terminal.integrated.enableBell 设为 false,Linux/macOS 用户仍可能听到响铃——因为 shell(如 bash/zsh)自己也有一套响铃逻辑,由 ~/.inputrc 或环境变量控制。
- 检查
~/.inputrc是否含set bell-style audible(这是默认),改成set bell-style none - Git Bash 用户可编辑
etc/inputrc(路径类似C:\Program Files\Git\etc\inputrc),加同一行 - 临时禁用:在终端里运行
set bell-style none,退出即失效
Windows 命令提示符(cmd)和 PowerShell 默认不响铃,但若用了 WSL + zsh/bash,就得查对应 shell 的配置。
showExitAlert 和铃声无关,别混淆
showExitAlert 是另一个常被误点的设置,但它控制的是「终端进程退出时弹窗确认」,不是声音。哪怕你关了 showExitAlert,只要 enableBell 是开启的,Ctrl+G 依然会“嘀”一声。
两者完全独立:
-
terminal.integrated.enableBell→ 控制响铃(声音) -
terminal.integrated.showExitAlert→ 控制退出弹窗(视觉)
很多教程把这两个混在一起讲,导致用户改了半天没效果,其实是动错了地方。
扩展或快捷键冲突也可能“伪装”成终端铃声
有些扩展(比如 Error Lens、Auto Rename Tag)在检测到语法错误或重命名失败时,会调用系统通知 API;部分系统(尤其是 macOS)会把通知转成提示音,听起来像终端铃声。
排查建议:
- 用
code --disable-extensions启动 VS Code,再试Ctrl+G;没声音,说明是扩展引起 - 重点检查扩展设置里有没有
playBeepOnWarning、enableSound类选项(极少数扩展真提供) - 留意是否误触了系统级快捷键:Windows 上
Caps Lock或Num Lock开关、macOS 的“粘滞键”/“键盘反馈”都会发声,和 VS Code 无关
真正难定位的,往往是 shell 配置 + 扩展行为 + 系统辅助功能三者叠加——建议按「VS Code 设置 → shell 配置 → 扩展 → 系统音效」顺序逐层排除。











