VSCode活动栏图标自定义需在用户级settings.json中配置workbench.activityBar.visibleEntries数组,数组的顺序决定了图标的排列顺序。使用命令“Developer:GenerateCurrentViewID”获取当前环境的真实视图ID(如workbench.view.explorer),缺失或拼错会导致图标消失或
VSCode自定义活动栏图标与视图排序设置
作者:技术拾光
时间:2026-06-18
浏览:237
文章目录
VSCode 的活动栏图标排序问题一直困扰着许多用户。通过右键拖拽无法持久保留设置,关闭窗口后就会还原。要实现彻底固定,最可靠的方式是在 settings.json 中手动配置 workbench.activityBar.visibleEntries 数组。然而,这里存在陷阱:遗漏某个ID会导致对应图标完全消失;拼写错误则会使配置失效。此外,该配置仅在用户级设置文件中生效,工作区级设置会覆盖它,导致用户误以为修改无效。

如何获取当前环境有效的视图ID列表
VSCode 并未提供直观的下拉菜单供选择,从网络直接复制的列表通常不准确,尤其是在安装了 Remote-SSH、GitLens 等扩展后,这些扩展注册的视图ID会完全不同。
- 打开命令面板(快捷键
Ctrl+Shift+P或Cmd+Shift+P),输入并执行Developer: Generate Default Activity Bar Entries。 - 该命令会在输出面板中打印出当前所有已注册的视图ID,例如
workbench.view.explorer、workbench.view.scm、remoteExplorer。 - 注意细节:
scm只是缩写,其真实ID为workbench.view.scm。而remoteExplorer是 Remote 扩展的专用ID,切勿想当然地写成workbench.view.remote——这个ID不存在。 - 如果某个扩展(如 GitHub Pull Requests)注入的是非标准ID,可打开开发者工具(通过
Developer: Toggle Developer Tools),在 Console 中执行vscode.workspace.getConfiguration('workbench').get('view.visibility')获取真实值。
如何编写 workbench.activityBar.visibleEntries 配置
该数组决定哪些图标显示以及它们从上到下的排列顺序。每个元素必须是完整且准确的视图ID字符串,数组顺序即显示顺序。
- 配置必须写入用户级的
settings.json(通常位于~/.config/Code/User/settings.json或 Windows 下的%APPDATA%\Code\User\settings.json)。若写入工作区级设置,其将被覆盖,导致“修改无效”。 - 示例:
{"workbench.activityBar.visibleEntries": ["workbench.view.explorer", "workbench.view.search", "workbench.view.scm", "remoteExplorer"]} - 未写入数组的ID,例如漏掉
workbench.view.debug,则调试图标会彻底消失,即使通过右键活动栏也无法找回“显示”选项。 - 保存后必须执行
Developer: Reload Window才能生效。重启 VSCode 有效,但仅关闭再打开项目窗口无效。
为什么右键拖拽或 Hide 无效
此行为并非 bug,而是 VSCode 的设计思路:右键操作仅影响当前窗口会话,不写入任何持久化配置。
- 右键活动栏空白处 → “自定义活动栏”→ 拖动图标:仅临时改变视觉顺序,关闭窗口后还原。
- 右键某个图标 → “Hide”:同样仅从当前界面移除,重启 VSCode 后所有图标回归。
- 要彻底禁用某个图标,只有两种方法:在
visibleEntries中排除该ID,或直接禁用注入该图标的扩展(例如卸载 GitLens 移除其图标)。 - 部分图标如 Timeline,无独立视图ID,无法通过此配置隐藏。要使其消失,只能禁用 Git 扩展或移除工作区下的 .git 目录。
容易被忽略的兼容性与陷阱
看似简单的配置,实际受版本、扩展、设置层级多重影响。最常见的问题是“明明配置了,却无效果”。
workbench.activityBar.location配置项不存在,尝试设为"right"或"bottom"会被 VSCode 静默忽略。活动栏位置无法调整。- 注意
remoteExplorerID 由 Remote-SSH 和 Remote-Containers 共用。一旦删除,所有远程相关图标(SSH 连接、容器浏览)将一起消失。 - 图标大小由
workbench.activityBar.iconSize控制,默认 22。不建议设得太低(低于 16 可能导致图标的 tooltip 文字被截断)。 - 活动栏与侧边栏状态解耦。即使从活动栏移除调试图标,只要项目中有
launch.json,调试功能依然可用,仅失去快捷入口。
总之,生效的配置始终依赖当前环境下的真实ID列表,而非通用模板。此外,务必执行 Reload Window 步骤,许多人因跳过此步而误判配置失败。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。