必须手动配置 workbench.activitybar.visibleentries 数组才能持久控制活动栏图标显隐与顺序,右键拖动仅临时生效;其值需写入用户级 settings.json,id 必须准确且顺序对应图标排列。

workbench.activityBar.visibleEntries 必须手动配置才生效
右键拖动活动栏图标顺序只是临时 UI 变更,重启后立刻还原——这不是 bug,是 VSCode 1.85+ 的明确设计。真正持久控制图标出现与否、排列顺序的唯一方式,是编辑用户级 settings.json,设置 workbench.activityBar.visibleEntries 数组。
这个数组必须写在用户设置(~/.vscode/settings.json 或通过 File > Preferences > Settings > Open Settings (JSON) 打开的文件)里;工作区级 .vscode/settings.json 中写同名字段会覆盖用户设置,导致“改了没反应”。
- 先运行命令
Developer: Generate Default Activity Bar Entries,它输出当前环境所有已注册的视图 ID(如workbench.view.explorer、workbench.view.scm) - 复制结果,粘贴进
settings.json,例如:{"workbench.activityBar.visibleEntries": ["workbench.view.explorer", "workbench.view.search", "workbench.view.scm"]} - 漏掉某个 ID,对应图标就彻底不显示;顺序调换,图标位置就跟着变;ID 写错(比如拼成
workbench.view.git)或根本不存在(如workbench.view.remote),该位置留空或图标消失
扩展注入的 ID 不是标准命名,得查真实值
GitLens、Remote-SSH 等扩展注册的视图 ID 往往不遵循内置命名规范,直接抄网上的 ID 列表大概率失效。比如 GitLens 注入的是 gitlens,不是 workbench.view.gitlens;Remote-SSH 和 Remote-Containers 共用 remoteExplorer,而不是 workbench.view.remote(后者根本无效)。
查真实 ID 的可靠方法:打开开发者工具(Developer: Toggle Developer Tools),在 Console 里执行:
vscode.workspace.getConfiguration('workbench').get('view.visibility') 或观察 vscode.window.registerView 相关日志。别信截图、别猜,只信这行代码返回的结果。
workbench.sideBar.location 控制侧边栏整体位置,和 activityBar 排序无关
把活动栏(activity bar)移到右侧,本质是移动整个侧边栏(sidebar)的位置,和图标排序是两回事。操作很简单:右键点击活动栏纯背景区域(两个图标之间的空隙),选 Move Side Bar to Right,VSCode 会自动在 settings.json 中写入 "workbench.sideBar.location": "right" 并持久保存。
注意:workbench.sideBar.location 只接受 "left" 或 "right",设成 "bottom" 或 "center" 会被静默忽略;它不影响 workbench.activityBar.visibleEntries 的顺序逻辑,只是把那一整列图标连同侧边栏内容一起挪过去。
- 如果右键无反应,大概率点到了图标上或标题栏,换个空隙再试
- Linux 桌面环境下可能被窗口管理器拦截右键,此时直接手写
"workbench.sideBar.location": "right"更稳 - 移到右侧后,
workbench.activityBar.visibleEntries定义的顺序依然从上到下生效,只是方向变了
隐藏 activityBar 后怎么操作?别全靠插件补位
设 "workbench.activityBar.visible": false 能彻底隐藏左侧一整列图标,但代价是失去所有视图入口。这时不能只依赖 Activitus Bar 这类状态栏插件——它只是把图标搬到状态栏,没解决快捷键盲区问题。
真正可持续的做法是组合使用:
- 保留核心快捷键:比如
Ctrl+Shift+E(资源管理器)、Ctrl+Shift+F(搜索)、Ctrl+Shift+G(源代码管理) - 用
Ctrl+Tab在已打开的视图面板间切换(需开启workbench.editor.enablePreview) - 安装插件如
Quick Switcher或启用workbench.quickOpen.history加速跳转 - Activitus Bar 可作为补充,但要配好
"activitusbar.alignment": "Right"避免遮挡状态栏原生信息
最易被忽略的一点:图标顺序和侧边栏位置是两个独立维度,但很多人试图用一个配置解决全部——结果要么顺序乱套,要么位置移不动。分开想、分开配,才不会反复重载窗口试错。











