VSCode活动栏图标顺序必须通过配置workbench.activityBar.visibleEntries数组精确控制,右键拖动仅临时生效且不保存;该设置仅在用户级settings.json中有效,需使用视图注册ID(非中文名),漏写或错写ID会导致图标消失或无效。

VSCode 的活动栏图标位置不能靠拖拽调整,唯一可靠、持久生效的方式是配置 workbench.activityBar.visibleEntries 数组。
为什么右键拖动图标顺序没用?
VSCode 1.85+ 版本中,右键活动栏空白处 →「自定义活动栏」→ 拖动图标,只是临时 UI 状态变更。它不写入任何配置,重启 VSCode 后立刻恢复默认顺序。这不是 bug,是设计如此——该操作仅影响当前窗口会话。
- 右键 Hide 某个图标,同样只是临时隐藏,下次启动全回来
- 想真正控制“哪些图标出现”和“按什么顺序排”,必须用
workbench.activityBar.visibleEntries - 该设置只在用户级
settings.json(不是工作区级)中生效;若工作区里也写了,会覆盖用户设置导致“看起来没生效”
怎么用 workbench.activityBar.visibleEntries 精确排序?
这个数组定义从上到下的图标顺序,每个元素是视图的注册 ID(不是中文名或图标名)。漏掉某个 ID,对应图标就彻底消失;顺序调换,图标位置就跟着变。
- 先运行命令
Developer: Generate Default Activity Bar Entries,它会输出当前环境所有可用 ID 列表(例如workbench.view.explorer、workbench.view.scm、workbench.view.debug) - 复制结果,在用户
settings.json中添加:{ "workbench.activityBar.visibleEntries": ["workbench.view.explorer", "workbench.view.scm", "workbench.view.search"] } - 扩展注册的 ID 可能不标准(比如 GitLens 注入的是
gitlens),需打开开发者工具(Developer: Toggle Developer Tools),执行vscode.workspace.getConfiguration('workbench').get('view.visibility')查真实值
常见误配和兼容性注意点
直接抄网上的 ID 列表容易出错,因为不同版本、不同扩展组合下注册的视图 ID 差异很大。尤其要注意:
-
remoteExplorer是 Remote-SSH 和 Remote-Containers 共用的 ID,删掉它,所有远程相关图标都会消失 -
workbench.view.remote这个 ID 并不存在,设了也无效 - 设成
"right"或"bottom"给workbench.activityBar.location—— 这个配置项根本不存在,VSCode 会静默忽略 - 图标大小由
workbench.activityBar.iconSize控制(默认 22),设低于 16 可能导致 tooltip 截断,不建议调太小
活动栏和侧边栏别再搞混了
很多人以为“把侧边栏移到右边”等于“活动栏移走了”,其实不是:活动栏永远固定在最左侧,哪怕你设置了 "workbench.sideBar.location": "right",它也只是把 Explorer、Search 等内容容器挪到右边,活动栏本身纹丝不动,只是现在它“孤零零站在左边”,旁边没内容了。
如果你真想腾出左侧空间,可行路径只有三个:隐藏部分图标(用 visibleEntries)、缩小图标尺寸(iconSize)、或干脆禁用整个活动栏(Toggle Activity Bar Visibility 命令),没有第四种移动方案。


















