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 Store 中以 Snap 包的形式分发:

从Snap商店获取

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

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

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

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

了解更多关于snaps的信息,请访问官方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 包

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

要获取有关从AUR安装的更多信息,请查阅以下维基条目: Install AUR Packages.

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

在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开发的另一个选择是在Windows机器上使用Windows Subsystem for Linux (WSL)。

适用于Linux的Windows子系统

使用WSL,您可以在Windows上安装和运行Linux发行版。这使得您可以在Linux上开发和测试源代码,同时仍然在Windows机器上本地工作。WSL支持从Microsoft Store获取的Linux发行版,如Ubuntu、Debian、SUSE和Alpine。

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

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

下一步

一旦你安装了VS Code,这些主题将帮助你了解更多关于它的信息:

常见问题

Azure 虚拟机问题

我遇到了一个“在没有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

在Ubuntu上,code bin命令不会将窗口带到前台

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

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

# Run
ccsm

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

无法安装 .deb 包,因为 "/etc/apt/sources.list.d/vscode.list: 没有这样的文件或目录"

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