命令行接口 (CLI)
Visual Studio Code 内置了强大的命令行接口,让您可以控制编辑器的启动方式。您可以通过命令行选项(开关)打开文件、安装扩展、更改显示语言以及输出诊断信息。

如果您想了解如何在 VS Code 内部运行命令行工具,请参阅 集成终端。
命令行帮助
要获取 VS Code 命令行接口的概述,请打开终端或命令提示符并输入 code --help。您将看到版本号、使用示例和命令行选项列表。

从命令行启动
您可以从命令行启动 VS Code 以快速打开文件、文件夹或项目。通常,您是在文件夹的上下文中打开 VS Code。要执行此操作,请在打开的终端或命令提示符中,导航到您的项目文件夹并输入 code .

macOS 用户必须首先运行命令(Shell Command: Install 'code' command in PATH),将 VS Code 可执行文件添加到 PATH 环境变量中。请阅读 macOS 设置指南以获取帮助。
Windows 和 Linux 安装程序通常会自动将 VS Code 二进制文件路径添加到系统路径中。如果未添加,您可以手动将该路径添加到 Path 环境变量(Linux 上为 $PATH)。例如,在 Windows 上,默认的 VS Code 二进制文件路径是 AppData\Local\Programs\Microsoft VS Code\bin。如需查看特定平台的设置说明,请参阅 设置。
如果您使用的是 VS Code Insiders 预览版,请使用 code-insiders 来启动您的 Insiders 构建版本。
核心 CLI 选项
以下是通过命令行使用 code 启动 VS Code 时可以使用的可选参数
| 参数 | 描述 |
|---|---|
-h 或 --help |
打印用法 |
-v 或 --version |
打印 VS Code 版本(例如 1.22.2)、GitHub 提交 ID 和架构(例如 x64)。 |
-n 或 --new-window |
打开一个新的 VS Code 会话,而不是恢复之前的会话(默认行为)。 |
-r 或 --reuse-window |
强制在最近活动的窗口中打开文件或文件夹。 |
- |
从标准输入 (stdin) 读取内容并在 VS Code 中打开(例如 'echo Hello World | code -') |
-g 或 --goto |
与 file:line{:character} 一起使用时,在指定的行号和可选的字符位置打开文件。提供此参数是因为某些操作系统允许在文件名中使用 :。 |
-d 或 --diff <file1> <file2> |
打开文件差异对比编辑器。需要两个文件路径作为参数。 |
-m 或 --merge <path1> <path2> <base> <result> |
通过提供两个修改过的文件版本、它们的共同起源以及用于保存合并结果的输出文件路径,执行三向合并。 |
-w 或 --wait |
等待文件关闭后再返回。 |
--locale <locale> |
为 VS Code 会话设置 显示语言(区域设置)。(例如 en-US 或 zh-CN) |

打开文件和文件夹
有时您希望打开或创建文件。如果指定的文件不存在,VS Code 会连同任何新的中间文件夹一起为您创建它们。
code index.html style.css documentation\readme.md
对于文件和文件夹,您都可以使用绝对路径或相对路径。相对路径是相对于运行 code 命令的命令提示符的当前目录。
如果您在命令行中指定了多个文件,VS Code 将仅打开一个实例。
如果您在命令行中指定了多个文件夹,VS Code 将创建一个包含每个文件夹的 多根工作区 (Multi-root Workspace)。
| 参数 | 描述 |
|---|---|
file |
要打开的文件名。如果文件不存在,将创建该文件并将其标记为已编辑。您可以通过用空格分隔每个文件名来指定多个文件。 |
file:line[:character] |
与 -g 参数配合使用。要在指定的行号和可选的字符位置打开的文件名。 |
folder |
要打开的文件夹名称。您可以指定多个文件夹,系统将创建一个新的 多根工作区。 |
--skip-add-to-recently-opened |
防止将打开的文件和文件夹添加到最近打开列表中。 |

选择配置文件
您可以通过 --profile 命令行接口选项使用特定的 配置文件 启动 VS Code。您可以在 --profile 参数后传入配置文件名称,并使用该配置文件打开文件夹或工作区。下方的命令将使用“Web Development”配置文件打开 web-sample 文件夹:
code ~/projects/web-sample --profile "Web Development"
如果指定的配置文件不存在,则会创建一个具有给定名称的新空配置文件。
使用扩展
您可以从命令行安装和管理 VS Code 扩展。
| 参数 | 描述 |
|---|---|
--install-extension <extension-id> | <extension-vsix-path> |
安装或更新扩展。请提供完整扩展名 publisher.extension 或 VSIX 文件的路径作为参数。要安装特定版本,请附加 @{version}。例如:vscode.csharp@1.2.3。使用 --force 参数可避免提示。使用 --profile 参数可为特定配置文件安装。 |
--uninstall-extension <extension-id> |
卸载扩展。请提供完整扩展名 publisher.extension 作为参数。使用 --profile 参数可从特定配置文件中卸载。 |
--disable-extensions |
禁用所有已安装的扩展。扩展在扩展视图的已禁用部分中仍然可见,但它们将不会被激活。 |
--list-extensions |
列出已安装的扩展。可以使用 --profile 参数列出特定配置文件的扩展。 |
--show-versions |
在使用 --list-extensions 时显示已安装扩展的版本。 |
--enable-proposed-api <ext> |
为扩展启用建议的 API 功能。请提供完整扩展名 publisher.extension 作为参数。 |
--update-extensions |
更新已安装的扩展并退出。 |

从命令行启动聊天
您可以使用 VS Code CLI 中的 chat 子命令直接从命令行启动聊天会话。这使您能够在当前工作目录中通过提供的提示语打开聊天会话。
例如,以下命令为当前目录打开聊天,并询问“查找并修复所有未定义类型的变量”
code chat Find and fix all untyped variables
chat 子命令具有以下命令行选项
-m,--mode <mode>:聊天会话使用的自定义代理。可用选项:ask,edit,agent或自定义代理的标识符。默认为agent。-a,--add-file <path>:将文件添加为聊天会话的上下文。--maximize:最大化聊天会话视图。-r,--reuse-window:在最近活动的窗口中使用聊天会话。-n,--new-window:为聊天会话打开一个新窗口。
chat 子命令还支持通过在命令末尾传递 - 来从 stdin 管道输入。例如:
python app.py | code chat why does it fail -
高级 CLI 选项
有几个 CLI 选项有助于重现错误和进行高级设置。
| 参数 | 描述 |
|---|---|
--extensions-dir <dir> |
设置扩展的根目录路径。 在 可移植模式 (Portable Mode) 下会被 data 文件夹覆盖。 |
--user-data-dir <dir> |
指定存放用户数据的目录。可用于运行多个隔离的 VS Code 实例,并拥有独立的环境、设置和扩展。在以 root 身份运行时也非常有用。 在 可移植模式 (Portable Mode) 下会被 data 文件夹覆盖。 |
-s, --status |
打印进程使用情况和诊断信息。 |
-p, --performance |
以启用 Developer: Startup Performance 命令的状态启动。 |
--disable-gpu |
禁用 GPU 硬件加速。 |
--verbose |
打印详细输出(隐含 --wait)。 |
--prof-startup |
在启动期间运行 CPU 分析器。 |
--upload-logs |
将当前会话的日志上传到安全终端节点。 |
--remote <authority> |
连接到远程开发环境。authority 指定了 WSL (wsl+<distro name> <path in WSL>) 或 SSH (ssh-remote+<remote_server> <path on remote>) 的远程连接。 |
| 多根工作区 | |
--add <dir> |
将文件夹添加到最近活动的窗口中,以形成多根工作区。 |
--remove <dir> |
从最近活动的窗口中移除多根工作区的文件夹。 |
隔离 VS Code 实例
默认情况下,VS Code 实例按以下方式共享环境变量
- 如果是第一个 VS Code 实例,环境变量从父进程继承。
- 如果不是第一个 VS Code 实例,环境变量从已经运行的 VS Code 实例继承。
当您需要为不同项目或构建配置使用不同的环境变量时,此行为可能会导致问题。例如,如果您正在处理两个需要不同 Node.js 版本或不同 PATH 设置的项目。
要使用不同的环境变量运行 VS Code 实例,请使用 --user-data-dir 选项为每个实例指定唯一的用户数据目录。
# First instance with its own environment
code ~/project1 --user-data-dir ~/vscode-data-project1
# Second instance with different environment
code ~/project2 --user-data-dir ~/vscode-data-project2
每个具有不同 --user-data-dir 的实例将维护其自己的:
- 环境变量
- 设置和首选项
- 已安装的扩展
- UI 状态和布局
使用 --user-data-dir 时,您需要为每个用户数据目录重新安装扩展,因为扩展是分开存储的。
创建远程隧道
VS Code 与其他 远程环境 集成,变得更加强大和灵活。我们的目标是提供一种统一的体验,让您能够从一个统一的 CLI 管理本地和远程机器。
Visual Studio Code Remote - Tunnels 扩展允许您通过安全隧道连接到远程机器(如台式机或虚拟机)。隧道可以安全地在网络之间传输数据。这样,您就可以从任何地方安全地连接到该机器,而无需 SSH。
我们在 code CLI 中内置了功能,可以在远程机器上启动隧道。您可以运行:
code tunnel
来在您的远程机器上创建隧道。您可以通过 Web 或桌面版 VS Code 客户端连接到此机器。
您可以通过运行 code tunnel -help 查看其他隧道命令。

由于您可能需要在无法安装 VS Code Desktop 的远程机器上运行 CLI,因此该 CLI 也可在 VS Code 下载页面 上作为独立安装包获取。
有关远程隧道的更多信息,请查阅 远程隧道文档。
使用 URL 打开 VS Code
您还可以使用平台的 URL 处理机制来打开项目和文件。使用以下 URL 格式:
打开项目
vscode://file/{full path to project}/
vscode://file/c:/myProject/
打开文件
vscode://file/{full path to file}
vscode://file/c:/myProject/package.json
打开文件并跳转到特定行列
vscode://file/{full path to file}:line:column
vscode://file/c:/myProject/package.json:5:10
打开设置编辑器
vscode://settings/setting.name
vscode://settings/editor.wordWrap
您可以在浏览器或文件资源管理器等能够解析和重定向 URL 的应用程序中使用这些 URL。例如,在 Windows 上,您可以将 vscode:// URL 直接传递给 Windows 资源管理器或在命令行中执行 start vscode://{full path to file}。

如果您使用的是 VS Code Insiders 构建版本,URL 前缀应为 vscode-insiders://。
后续步骤
继续阅读以了解:
常见问题
'code' 不是内部或外部命令
您的操作系统无法在其路径中找到 VS Code 二进制文件 code。VS Code 的 Windows 和 Linux 安装程序通常会自动将 VS Code 添加到您的路径中。尝试卸载并重新安装 VS Code。如果仍然找不到 code,请查阅针对 Windows 和 Linux 的特定平台设置主题。
在 macOS 上,您需要手动运行 Shell Command: Install 'code' command in PATH 命令(可通过命令面板 (Command Palette) ⇧⌘P (Windows, Linux Ctrl+Shift+P) 访问)。有关详细信息,请参阅 macOS 特定设置主题。
如何从 VS Code 内部访问命令行(终端)?
VS Code 有一个 集成终端,您可以在其中运行命令行工具。
我能指定 VS Code 的设置位置以实现便携式版本吗?
无法直接通过命令行实现,但 VS Code 有一个 可移植模式 (Portable Mode),它允许您将设置和数据保存在与安装目录相同的位置,例如在 U 盘上。
如何检测 shell 是否由 VS Code 启动?
当 VS Code 启动时,它可能会启动一个 shell 以加载“shell 环境”来帮助设置工具。这会启动一个交互式登录 (interactive login) shell 并获取其环境。根据您的 shell 设置,这可能会导致问题。例如,shell 被作为交互式会话启动可能是意料之外的,但这是 VS Code 为了使 $PATH 与用户创建的终端中的精确值对齐所必需的。
每当 VS Code 启动此初始 shell 时,它都会将变量 VSCODE_RESOLVING_ENVIRONMENT 设置为 1。如果您的 shell 或用户脚本需要知道它们是否是在此 shell 的上下文中运行,您可以检查 VSCODE_RESOLVING_ENVIRONMENT 的值。