现已发布!阅读有关 11 月份新增功能和修复的信息。

Linux 上的 Visual Studio Code

安装

请参阅下载 Visual Studio Code 页面,获取可用安装选项的完整列表。

下载并使用 Visual Studio Code 即表示你同意许可条款隐私声明

基于 Debian 和 Ubuntu 的发行版

为基于 Debian/Ubuntu 的发行版安装 Visual Studio Code 的最简单方法是下载并安装 .deb 包(64 位),可通过图形软件中心(如果可用)或通过命令行使用

sudo apt install ./<file>.deb

# If you're on an older Linux distribution, you will need to run this instead:
# sudo dpkg -i <file>.deb
# sudo apt-get install -f # Install dependencies

请注意,其他二进制文件也可在VS Code 下载页上找到。

安装 .deb 包将提示安装 apt 存储库和签名密钥,以启用使用系统包管理器进行自动更新。 要自动安装 apt 存储库和签名密钥(例如在非交互式终端上),请首先运行以下命令

echo "code code/add-microsoft-repo boolean true" | sudo debconf-set-selections

还可以使用以下脚本手动安装 apt 存储库和密钥

sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" |sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
rm -f packages.microsoft.gpg

然后,更新包缓存并使用以下命令安装包

sudo apt install apt-transport-https
sudo apt update
sudo apt install code # or code-insiders

基于 RHEL、Fedora 和 CentOS 的发行版

我们目前在 yum 存储库中提供稳定的 64 位 VS Code,以下脚本将安装密钥和存储库

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null

然后,更新包缓存并使用 dnf(Fedora 22 及更高版本)安装包

dnf check-update
sudo dnf install code # or code-insiders

或在旧版本上使用 yum

yum check-update
sudo yum install code # or code-insiders

由于手动签名过程和我们用于发布的系统,yum 存储库可能会滞后,并且不会立即获得最新版本的 VS Code。

Snap

Visual Studio Code 作为 Snap 包在 Snap Store 中正式分发

Get it from the Snap Store

你可以通过运行以下命令来安装它

sudo snap install --classic code # or code-insiders

安装后,Snap 守护程序将负责在后台自动更新 VS Code。 每当有新更新可用时,你都会收到产品内的更新通知。

注意: 如果你的 Linux 发行版中没有 snap,请查看以下安装 snapd 指南,它可以帮助你进行设置。

官方 Snap 文档了解有关快照的更多信息。

基于 openSUSE 和 SLE 的发行版

上面的 yum 存储库也适用于基于 openSUSE 和 SLE 的系统,以下脚本将安装密钥和存储库

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" |sudo tee /etc/zypp/repos.d/vscode.repo > /dev/null

然后,更新包缓存并使用以下命令安装包

sudo zypper refresh
sudo zypper install code

适用于 Arch Linux 的 AUR 包

有一个社区维护的 适用于 VS Code 的 Arch 用户存储库包

要了解有关从 AUR 安装的更多信息,请参阅以下 wiki 条目:安装 AUR 包

适用于 NixOS 的 Nix 包(或使用 Nix 包管理器的任何 Linux 发行版)

在 nixpkgs 存储库中有一个社区维护的 VS Code Nix 包。 要使用 Nix 安装它,请在 config.nix 中将 allowUnfree 选项设置为 true,然后执行

nix-env -i vscode

手动安装 .rpm 包

还可以手动下载和安装 VS Code .rpm 包(64 位),但是,除非安装了上述存储库,否则自动更新将不起作用。 下载后,可以使用你的程序包管理器进行安装,例如使用 dnf

sudo dnf install <file>.rpm

请注意,其他二进制文件也可在VS Code 下载页上找到。

更新

VS Code 每月发布一次,你可以通过查看发行说明来了解何时有新版本可用。 如果 VS Code 存储库安装正确,则你的系统包管理器应以与系统上的其他包相同的方式处理自动更新。

注意: 更新是自动的,并在后台为Snap 包运行。

Node.js

Node.js 是一个流行的平台和运行时,用于轻松构建和运行 JavaScript 应用程序。 它还包括 npm,一个用于 Node.js 模块的程序包管理器。 你会在我们的文档中经常看到 Node.js 和 npm,并且某些可选的 VS Code 工具需要 Node.js(例如,VS Code 扩展生成器)。

如果你想在 Linux 上安装 Node.js,请参阅通过程序包管理器安装 Node.js,以查找适合你的 Linux 发行版的 Node.js 包和安装说明。 你还可以使用Node 版本管理器来安装和支持多个版本的 Node.js。

要了解有关 JavaScript 和 Node.js 的更多信息,请参阅我们的 Node.js 教程,你将在其中学习使用 VS Code 运行和调试 Node.js 应用程序。

将 VS Code 设置为默认文本编辑器

xdg-open

你可以使用以下命令设置 xdg-open 使用的文本文件 (text/plain) 的默认文本编辑器

xdg-mime default code.desktop text/plain

Debian 替代系统

基于 Debian 的发行版允许使用 Debian 替代系统设置默认编辑器,而无需考虑 MIME 类型。 你可以通过运行以下命令并选择代码来设置此项

sudo update-alternatives --set editor /usr/bin/code

如果 Visual Studio Code 未显示为 editor 的替代项,则需要注册它

sudo update-alternatives --install /usr/bin/editor editor $(which code) 10

将 Windows 用作 Linux 开发机器

使用 VS Code 进行 Linux 开发的另一种选择是使用安装了适用于 Linux 的 Windows 子系统 (WSL) 的 Windows 计算机。

适用于 Linux 的 Windows 子系统

使用 WSL,你可以在 Windows 上安装和运行 Linux 发行版。 这使你可以在 Linux 上开发和测试源代码,同时仍然可以在 Windows 计算机上进行本地工作。 WSL 支持来自 Microsoft Store 的 Ubuntu、Debian、SUSE 和 Alpine 等 Linux 发行版。

WSL 扩展结合使用时,你可以在 WSL 上的 Linux 发行版环境中运行时获得完整的 VS Code 编辑和调试支持。

请参阅在 WSL 中开发文档以了解更多信息,或尝试在 WSL 中工作入门教程。

后续步骤

安装 VS Code 后,以下主题将帮助你了解有关它的更多信息

常见问题

Azure VM 问题

我收到“在没有 SUID 沙盒的情况下运行”错误?

你可以安全地忽略此错误。

Debian 和将文件移动到回收站

如果你在 Debian 操作系统上从 VS Code 资源管理器中删除文件时看到错误,则可能是因为 VS Code 正在使用的回收站实现不存在。

运行以下命令来解决此问题

sudo apt-get install gvfs libglib2.0-bin

与来自其他存储库的 VS Code 包的冲突

某些发行版(例如Pop!_OS)提供他们自己的 code 包。 为确保使用官方 VS Code 存储库,请创建一个名为 /etc/apt/preferences.d/code 的文件,其中包含以下内容

Package: code
Pin: origin "packages.microsoft.com"
Pin-Priority: 9999

“Visual Studio Code 无法监视此大型工作区中的文件更改”(错误 ENOSPC)

当您看到此通知时,表示 VS Code 文件监视器正在耗尽实现文件监视所需的文件句柄。这种情况最常发生在打开一个大型且包含许多文件的工作区时。在调整平台限制之前,请确保将诸如 Python .venv 之类的潜在大型文件夹添加到 files.watcherExclude 设置中(更多详细信息如下)。也可能是其他正在运行的应用程序占用了太多的文件句柄,导致 VS Code 无法使用。在这种情况下,关闭这些其他应用程序可能会有所帮助。

可以通过运行以下命令查看当前限制:

cat /proc/sys/fs/inotify/max_user_watches

可以通过编辑 /etc/sysctl.conf(Arch Linux 除外,请阅读下文)并在文件末尾添加以下行,将限制增加到最大值:

fs.inotify.max_user_watches=524288

然后可以通过运行 sudo sysctl -p 加载新值。

虽然 524,288 是可以监视的最大文件数,但如果您处于内存特别受限的环境中,则可能需要降低该数值。每个文件监视器占用 1080 字节,因此假设所有 524,288 个监视器都被使用,则会导致大约 540 MiB 的上限。

基于Arch的发行版(包括 Manjaro)需要您更改不同的文件;请按照这些步骤进行操作。

另一种选择是使用 files.watcherExclude 设置从 VS Code 文件监视器中排除特定的工作区目录。 files.watcherExclude 的默认值会排除 node_modules.git 下的一些文件夹,但您可以添加其他不希望 VS Code 跟踪的目录。

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  }

我无法在 Ubuntu 中看到中文字符

我们正在努力修复。在此期间,请打开应用程序菜单,然后选择 文件 > 首选项 > 设置。在 文本编辑器 > 字体 部分,将“字体系列”设置为 Droid Sans Mono, Droid Sans Fallback。如果您更愿意直接编辑 settings.json 文件,请按如下所示设置 editor.fontFamily

    "editor.fontFamily": "Droid Sans Mono, Droid Sans Fallback"

未安装包 git

此错误可能在安装过程中出现,通常是由于软件包管理器的列表过期所致。请尝试更新它们并重新安装。

# For .deb
sudo apt-get update

# For .rpm (Fedora 21 and below)
sudo yum check-update

# For .rpm (Fedora 22 and above)
sudo dnf check-update

代码 bin 命令无法将窗口置于 Ubuntu 前台

当 VS Code 已在当前目录中打开时,在 Ubuntu 上运行 code . 不会将 VS Code 带到前台。这是操作系统的特性,可以使用 ccsm 禁用。

# Install
sudo apt-get update
sudo apt-get install compizconfig-settings-manager

# Run
ccsm

常规 > 常规选项 > 焦点和提升行为 下,将“焦点预防级别”设置为“关闭”。请记住,这是一个操作系统级别的设置,将应用于所有应用程序,而不仅仅是 VS Code。

由于“/etc/apt/sources.list.d/vscode.list:没有这样的文件或目录”,无法安装 .deb 包

sources.list.d 不存在或者您没有创建该文件的访问权限时,可能会发生这种情况。要解决此问题,请尝试手动创建文件夹和一个空的 vscode.list 文件。

sudo mkdir /etc/apt/sources.list.d
sudo touch /etc/apt/sources.list.d/vscode.list

在 X 转发远程窗口时,无法移动或调整窗口大小

如果您正在使用 X 转发远程使用 VS Code,则需要使用原生标题栏以确保您可以正确操作窗口。您可以通过将 window.titleBarStyle 设置为 native 来切换使用它。

使用自定义标题栏

在 Linux 上,默认情况下已启用自定义标题栏和菜单数月。自定义标题栏在 Windows 上取得了成功,但 Linux 上的客户反馈表明情况并非如此。根据反馈,我们决定在 Linux 上使此设置成为可选设置,并将原生标题栏保留为默认设置。

自定义标题栏提供了许多好处,包括出色的主题支持以及通过键盘导航和屏幕阅读器实现的更好的可访问性。不幸的是,这些好处在 Linux 平台上没有得到很好的体现。Linux 有各种桌面环境和窗口管理器,这可能会使 VS Code 主题对于用户来说看起来很陌生。对于需要可访问性改进的用户,我们建议在使用屏幕阅读器在辅助功能模式下运行时启用自定义标题栏。您仍然可以使用 窗口:标题栏样式 ( window.titleBarStyle) 设置手动设置标题栏。

启用显示缩放时编辑器中的光标损坏

由于 Electron 的上游问题 #14787,启用缩放时鼠标光标可能会错误地呈现。如果您注意到通常的文本光标没有像预期的那样在编辑器内呈现,请尝试通过将设置 window.titleBarStyle 配置为 native 来回退到原生菜单栏。

存储库更改了其来源值

如果您收到类似于以下内容的错误

E: Repository '...' changed its 'Origin' value from '...' to '...'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

请使用 apt 而不是 apt-get,系统将提示您接受来源更改

sudo apt update