VSCode活动栏图标顺序必须通过配置workbench.activityBar.visibleEntries数组持久化,拖拽仅为临时UI状态且重启失效;需在用户级settings.json中精确填写当前环境真实视图ID(如workbench.view.explorer),漏写或错写将导致图标缺失或顺序错误。

VSCode 左侧工具栏(Activity Bar)的图标顺序不能靠拖拽持久化,唯一可靠方式是手动配置 workbench.activityBar.visibleEntries 数组。
右键拖拽图标为什么总“回弹”?
你看到的拖拽反馈只是当前窗口的临时 UI 状态,不写入任何配置。关闭 VSCode 再重开,立刻恢复默认顺序——这不是 bug,是 VSCode 1.85+ 的明确设计。右键 Hide 同理,只在本次会话生效,重启后全部回来。
- 所谓“自定义活动栏”菜单里的拖动,本质是调试用的临时操作,VSCode 不保存它
- 某些扩展(如 GitHub Pull Requests)注入的图标 ID 不在标准列表里,拖完根本找不到对应配置项
- 如果拖完发现图标跳回原位,大概率是你没启用
workbench.activityBar.visibleEntries配置,或工作区 settings.json 覆盖了用户设置
怎么用 workbench.activityBar.visibleEntries 精确控制顺序
这个数组决定从上到下的图标排列,每个元素必须是完整、准确的视图 ID(不是中文名,也不是图标名),漏一个就少一个图标,错一个就无效。
- 先运行命令
Developer: Generate Default Activity Bar Entries,获取当前环境真实可用的 ID 列表(例如workbench.view.explorer、workbench.view.scm、remoteExplorer) - 必须写在用户级
settings.json中才全局生效;工作区级配置优先级更高,容易误判“没生效” - 扩展注册的 ID 可能非标:比如 GitLens 注入的是
gitlens,Remote-SSH 和 Remote-Containers 共用remoteExplorer,而不是网上乱传的workbench.view.remote - 想查真实 ID?打开开发者工具(
Developer: Toggle Developer Tools),在 Console 执行vscode.workspace.getConfiguration('workbench').get('view.visibility')
常见踩坑点和兼容性细节
配置看似简单,但 ID 错一位、位置写错层级、或混用工作区/用户设置,都会导致图标消失或顺序错乱。
- 误删
workbench.view.explorer→ 资源管理器图标彻底消失,且右键无法恢复,只能手动补回 - 设成
"workbench.activityBar.location": "right"?这个配置项根本不存在,VSCode 会静默忽略 -
workbench.activityBar.iconSize控制图标大小,默认 22;设低于 16 可能导致 tooltip 截断,不建议调太小 - 活动栏图标的显隐和侧边栏视图的展开状态解耦:删掉 debug 图标,
launch.json依然有效,只是少了个快捷入口
最易被忽略的是:不同扩展组合下注册的视图 ID 差异很大,直接抄网上的配置列表几乎必然出错。每次改配置前,务必先运行 Developer: Generate Default Activity Bar Entries 拿当前环境的真实 ID —— 这一步省不得。


















