You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下如何让VS Code在当前虚拟桌面智能打开文件?

在Mac虚拟桌面中让VS Code按桌面匹配窗口的解决方案

要实现「当前虚拟桌面已有VS Code窗口则复用,否则新建窗口」的功能,你可以通过Shell脚本结合AppleScript来实现,具体步骤如下:

1. 创建自定义执行脚本

在终端中创建一个名为code-desktop的脚本文件,内容如下:

#!/bin/bash

# 获取当前虚拟桌面(Space)的ID
current_space=$(osascript -e 'tell application "System Events" to get id of current space')

# 检查当前Space是否存在VS Code窗口
has_vscode_window=$(osascript -e "tell application \"Visual Studio Code\" to exists (window whose id of its space is $current_space)")

if [ "$has_vscode_window" = "true" ]; then
    # 当前桌面已有窗口,用常规命令在该窗口打开文件
    code "$@"
else
    # 当前桌面无窗口,新建VS Code窗口
    code -n "$@"
fi

2. 给脚本添加执行权限

执行以下命令赋予脚本可执行权限:

chmod +x code-desktop

3. 配置全局可访问

将脚本移动到系统可执行路径,比如/usr/local/bin,这样就能在任意终端路径直接调用:

mv code-desktop /usr/local/bin/

使用方式

之后在终端中,用code-desktop filename代替原来的code或code -n命令即可:

  • 如果当前虚拟桌面已有VS Code窗口,文件会在该窗口的新标签页打开
  • 如果当前虚拟桌面没有VS Code窗口,会自动在该桌面新建VS Code窗口打开文件

注意事项

  • 首次运行时,系统可能会提示授权终端访问「辅助功能」权限,需要在系统偏好设置 > 安全性与隐私 > 隐私 > 辅助功能中勾选终端(或你使用的终端工具,比如iTerm),否则无法获取虚拟桌面ID。
  • 如果VS Code尚未启动,脚本会直接新建窗口,符合「当前桌面无窗口则新建」的逻辑。

内容的提问来源于stack exchange,提问作者Mark Harrison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:48:30