作为一个 Mac 程序员,我每次打开 VS Code,看着顶部那个把菜单栏和代码标签页强行揉在一起的“缝合怪”标题栏,心里总有点别扭。它努力模仿 macOS,但就像穿了西装的运动鞋,总差点意思。
先给大家科普下,Mac 的“原生窗口(Native Window)”就是系统亲儿子。它的红绿灯按钮、拖拽时的阴影、全屏时的动画,都是系统底层直接渲染的。
而 VS Code 默认用的是 Electron 画的“自定义标题栏(Custom)”。这玩意儿最大的毛病就是:当你用 Rectangle 或 Magnet 这种第三方软件拖拽分屏时,它偶尔会卡顿,甚至拖不动,简直逼死强迫症。
为了解决这个“水土不服”,VS Code 早就出了 window.titleBarStyle: native 设置,让你换回原生标题栏。但问题来了:标题栏原生是原生了,下面的代码标签页(Tabs)还是 VS Code 自己画的,看着依然像个“混血儿”,而且标签页之间不能像 Safari 那样随意拖拽合并。
vscode团队里面绝大部分开发者都是使用mac,对此深有体会,于是增加了vscode适配mac的原生窗口的配置。
只要在设置里把 "window.nativeTabs": true 打开,VS Code 的标签页就彻底“从良”了,直接接入 macOS 的原生标签页系统。
这玩意儿有多爽?
现在你可以像拖拽 Safari 标签页一样,直接把 VS Code 的一个代码标签拖出来,瞬间变成一个独立窗口;或者把两个 VS Code 窗口拖到一起,自动合并成一个窗口的多个标签。这操作,丝滑得让人想哭。

以前按三指上推,VS Code 的十几个标签页像散沙一样铺满屏幕,找文件像大海捞针。现在?它们乖乖地聚拢在同一个原生窗口组里,清清爽爽。

双指左右滑动切换标签页的 Mac 传统艺能,终于回来了。
另外还可以点击tab右边的加号来新增一个窗口,点一下就能直接打开新项目,体验非常不错。
当然,开启这个功能后,系统菜单栏和代码标签页会分家,可能会多占一丢丢垂直空间。但这可是纯正的“苹果味”啊!
如果你打开新的tab也希望是原生的,还需要再你的mac上设置prefer tabs为always