必须修改 settings.json 中的 "window.statusbar.visible": false 才能永久隐藏状态栏,因为 toggle status bar 命令仅临时生效、不跨会话、不作用于远程/wsl 窗口,且 zen mode 的 hidestatusbar 仅限该模式下生效。

不能只靠快捷键隐藏状态栏,它没有全局开关;想彻底关掉,必须改 window.statusBar.visible 设置,但关了就看不到 Git 分支、编码格式、换行符这些关键信息,且无替代 UI。
为什么 Ctrl+Shift+P → Toggle Status Bar 不可靠
这个命令只是临时切换,重启 VSCode 或切工作区后状态会重置;它也不影响 Zen Mode 下的状态栏行为(Zen Mode 有自己的 zenMode.hideStatusBar 控制项,但默认不启用);更关键的是,它对远程开发窗口、WSL 窗口有时根本没响应——因为状态栏渲染依赖本地窗口服务,远程端可能跳过该逻辑。
常见错误现象:
– 执行命令后状态栏一闪又出现
– 在 WSL 窗口中执行无反应,但终端里显示“status bar toggled”
– 多窗口并存时只影响当前窗口,其他窗口状态不变
永久隐藏状态栏:必须改 settings.json
直接编辑用户级 settings.json,添加这一行:
"window.statusBar.visible": false
注意:
– 这是全局设置,对所有窗口生效,包括新打开的文件夹和空窗口
– 工作区级设置(.vscode/settings.json)可以覆盖它,但仅限该目录下启动的 VSCode 实例
– 不要写成 window.statusBarVisibility(这是旧版配置,已废弃,VSCode 会忽略)
– 修改后立即生效,无需重启,但已打开的终端/调试面板不会自动刷新状态栏区域,需手动收起再展开一次
Zen Mode 下的状态栏控制更细,但别混用
Zen Mode 自带独立开关:zenMode.hideStatusBar,默认为 false。它只在进入 Zen 模式时生效,不影响普通模式下的状态栏。如果你同时设了 window.statusBar.visible: false 和 zenMode.hideStatusBar: true,后者实际无效——因为底层状态栏已经不可见了。
容易踩的坑:
– 以为勾选 Settings 里的 “Zen Mode: Hide Status Bar” 就够了 → 实际它只写入 zenMode.hideStatusBar: true,没动 window.statusBar.visible
– 在 Zen Mode 中右键状态栏尝试“隐藏某一项” → 状态栏已整体不可见,右键菜单压根不出现
– 退出 Zen Mode 后发现状态栏没回来 → 因为 window.statusBar.visible 是 false,不是 Zen 的临时状态
真要沉浸,优先降噪而非删除
状态栏真正干扰的不是存在本身,而是右下角一堆小图标来回闪烁(比如 Live Server、Git 变更数、Prettier 正在格式化)。比起全关,更推荐:
– 右键点击状态栏任意位置 → 取消勾选不需要的条目,如 Git、Selection、Language Mode
– 在 settings.json 中加 "workbench.statusBar.feedback.visible": false 关掉右下角“反馈”按钮
– 用 "window.zoomLevel": -1 缩小整体 UI,状态栏高度也会等比压缩(对 2K/4K 屏尤其有效)
这些操作保留了编码(UTF-8)、换行符(LF/CRLF)、光标位置等基础信息,又把视觉噪音压到最低——比全关更可持续。
真正要关状态栏前,确认你不需要快速查看当前分支名、不介意每次保存前手动确认编码是否正确、也不靠状态栏右下角的“×”来关闭未保存提示。一旦关了,就没有快捷方式把它调回来。











