命令行界面 (CLI)

Visual Studio Code 内置了一个强大的命令行界面,允许您控制如何启动编辑器。您可以通过命令行选项(开关)打开文件、安装扩展、更改显示语言并输出诊断信息。

命令行示例

如果您正在寻找如何在 VS Code 内运行命令行工具,请参阅 集成终端

命令行帮助

要了解VS Code命令行界面的概述,请打开终端或命令提示符并输入code --help。您将看到版本、使用示例和命令行选项列表。

命令行帮助

从命令行启动

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

启动 VS Code

注意: macOS 用户必须先运行一个命令(Shell 命令:在 PATH 中安装 'code' 命令)以将 VS Code 可执行文件添加到 PATH 环境变量中。如需帮助,请阅读 macOS 设置指南

Windows 和 Linux 安装应将 VS Code 二进制文件位置添加到系统路径中。如果不是这种情况,您可以手动将该位置添加到 Path 环境变量(在 Linux 上是 $PATH)。例如,在 Windows 上,默认的 VS Code 二进制文件位置是 AppData\Local\Programs\Microsoft VS Code\bin。要查看特定平台的设置说明,请参阅 Setup

内部人员: 如果您正在使用 VS Code Insiders 预览版,您可以使用 code-insiders 启动您的 Insiders 构建。

核心命令行选项

以下是通过命令行启动 VS Code 时可以使用的可选参数:

Argument Description
-h or --help Print usage
-v or --version Print VS Code version (for example, 1.22.2), GitHub commit ID, and architecture (for example, x64).
-n or --new-window Opens a new session of VS Code instead of restoring the previous session (default).
-r or --reuse-window Forces opening a file or folder in the last active window.
-g or --goto When used with file:line{:character}, opens a file at a specific line and optional character position. This argument is provided since some operating systems permit : in a file name.
-d or --diff <file1> <file2> Open a file difference editor. Requires two file paths as arguments.
-m or --merge <path1> <path2> <base> <result> Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions, and the output file to save merge results.
-w or --wait Wait for the files to be closed before returning.
--locale <locale> Set the display language (locale) for the VS Code session. (for example, en-US or zh-TW)

启动时使用本地化设置

打开文件和文件夹

有时您会想要打开或创建一个文件。如果指定的文件不存在,VS Code 将为您创建它们以及任何新的中间文件夹:

code index.html style.css documentation\readme.md

对于文件和文件夹,您可以使用绝对路径或相对路径。相对路径是相对于您运行code命令提示符的当前目录。

如果您在命令行中指定了多个文件,VS Code 将只打开一个实例。

如果你在命令行中指定了多个文件夹,VS Code 将会创建一个包含每个文件夹的多根工作区

Argument Description
file Name of a file to open. If the file doesn't exist, it will be created and marked as edited. You can specify multiple files by separating each file name with a space.
file:line[:character] Used with the -g argument. Name of a file to open at the specified line and optional character position.
folder Name of a folder to open. You can specify multiple folders and a new Multi-root Workspace is created.

转到行和列

选择一个配置文件

您可以通过--profile命令行界面选项启动VS Code并指定一个特定的配置文件。在--profile参数后传递配置文件的名称,并使用该配置文件打开文件夹或工作区。以下命令行使用“Web Development”配置文件打开web-sample文件夹:

code ~/projects/web-sample --profile "Web Development"

如果指定的配置文件不存在,将创建一个具有给定名称的新空配置文件。

使用扩展

您可以从命令行安装和管理VS Code 扩展

Argument Description
--install-extension <ext> Install an extension. Provide the full extension name publisher.extension as an argument. Use --force argument to avoid prompts.
--uninstall-extension <ext> Uninstall an extension. Provide the full extension name publisher.extension as an argument.
--disable-extensions Disable all installed extensions. Extensions will still be visible in the Disabled section of the Extensions view but they will never be activated.
--list-extensions List the installed extensions.
--show-versions Show versions of installed extensions, when using --list-extensions
--enable-proposed-api <ext> Enables proposed api features for an extension. Provide the full extension name publisher.extension as an argument.
--update-extensions Update installed extensions and exit.

安装扩展

高级命令行选项

有几个CLI选项可以帮助重现错误和进行高级设置。

Argument Description
--extensions-dir <dir> Set the root path for extensions.
Overridden in Portable Mode by the data folder.
--user-data-dir <dir> Specifies the directory that user data is kept in, useful when running as root.
Overridden in Portable Mode by the data folder.
-s, --status Print process usage and diagnostics information.
-p, --performance Start with the Developer: Startup Performance command enabled.
--disable-gpu Disable GPU hardware acceleration.
--verbose Print verbose output (implies --wait).
--prof-startup Run CPU profiler during startup.
--upload-logs Uploads logs from current session to a secure endpoint.
Multi-root
--add <dir> Add folder(s) to the last active window for a multi-root workspace.

创建远程隧道

VS Code 与其他远程环境集成,变得更加强大和灵活。我们的目标是提供一个统一的体验,允许您从一个统一的 CLI 管理本地和远程机器。

Visual Studio Code 的 Remote - Tunnels 扩展允许您通过安全隧道连接到远程机器,如台式电脑或虚拟机。隧道安全地将数据从一个网络传输到另一个网络。然后,您可以从任何地方安全地连接到该机器,而无需SSH。

我们已经在code CLI中构建了功能,可以在远程机器上启动隧道。你可以运行:

code tunnel

在您的远程机器上创建一个隧道。您可以通过网页或桌面VS Code客户端连接到这台机器。

你可以通过运行code tunnel -help来查看其他隧道命令:

隧道帮助CLI命令的输出

由于您可能需要在无法安装VS Code桌面的远程机器上运行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://{文件完整路径}

Windows 资源管理器中的 vscode 网址

注意: 如果您使用的是 VS Code Insiders 版本,URL 前缀是 vscode-insiders://

下一步

继续阅读以了解以下内容:

  • 集成终端 - 在VS Code内部运行命令行工具。
  • Basic Editing - 学习VS Code编辑器的基本操作。
  • 代码导航 - VS Code 让您能够快速理解并浏览您的源代码。

常见问题

'code' 不被识别为内部或外部命令

您的操作系统无法在其路径上找到VS Code二进制文件code。VS Code的Windows和Linux安装应该已将VS Code安装在您的路径上。尝试卸载并重新安装VS Code。如果仍然找不到code,请查阅特定平台的设置主题WindowsLinux

在macOS上,您需要手动运行Shell命令:在PATH中安装'code'命令(可通过命令面板 ⇧⌘P(Windows,Linux Ctrl+Shift+P)。详情请参阅macOS特定设置主题。

如何在VS Code中访问命令行(终端)?

VS Code 有一个集成终端,您可以在其中从 VS Code 内部运行命令行工具。

我可以指定VS Code的设置位置以便拥有便携版本吗?

不直接通过命令行,但VS Code有一个便携模式,它允许你将设置和数据保存在与安装位置相同的地方,例如在USB驱动器上。

如何检测何时由VS Code启动了一个shell?

当 VS Code 启动时,它可能会启动一个 shell 以获取“shell 环境”来帮助设置工具。这将启动一个交互式登录 shell 并获取其环境。根据您的 shell 设置,这可能会导致问题。例如,shell 作为交互式会话启动可能是意外的,而 VS Code 需要这样做以尝试将 $PATH 与用户创建的终端中的确切值对齐。

每当 VS Code 启动这个初始 shell 时,VS Code 会将变量 VSCODE_RESOLVING_ENVIRONMENT 设置为 1。如果你的 shell 或用户脚本需要知道它们是否在这个 shell 的上下文中运行,你可以检查 VSCODE_RESOLVING_ENVIRONMENT 的值。