入门 Zed Industries 2026-09-14 17:42:19 · 0 阅读

第10章 Zed 中的 REPL - Jupyter 内核

快速上手

Zed 内置的 REPL 基于 Jupyter kernels,允许你在常规编辑器文件中交互式地运行代码。

安装配置

Zed 支持多种语言的代码执行。要开始使用,你需要安装所使用语言的 kernel。

当前支持的语言:

安装完成后,你可以在相应语言的文件中,或其他支持该语言的地方(如 Markdown)开始使用 REPL。如果你刚刚添加 kernel,请运行 {#action repl::RefreshKernelspecs} 命令,使其在编辑器中可用。

使用 REPL

要启动 REPL,请打开你想使用的语言对应的文件,然后使用 {#action repl::Run} 命令(macOS 上默认为 ctrl-shift-enter)来执行代码块、选区或当前行。你也可以直接点击工具栏中的 REPL 图标。

{#action repl::Run} 命令将针对你选中的内容执行,结果会显示在选区下方。

你可以通过 {#action repl::ClearOutputs} 命令清除输出,也可以从工具栏的 REPL 菜单中操作。

Cell 模式

Zed 支持以脚本形式使用 notebook:Python 中用 # %%、TypeScript 中用 // %% 作为单元格分隔符。这样你就可以在单个文件里写代码,并像 notebook 一样逐单元格运行。

{#action repl::Run} 命令会把 # %% 标记之间的每段代码作为一个独立单元格来运行。

# %% Cell 1
import time
import numpy as np

# %% Cell 2
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')

各语言配置说明

Python

全局环境

要让当前的 Python 提供可用内核,请运行:

pip install ipykernel
python -m ipykernel install --user

Conda 环境

source activate myenv
conda install ipykernel
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

使用 pip 的 Virtualenv

source activate myenv
pip install ipykernel
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

注意:在 macOS 上,系统自带的 Python 是无法使用的。请配置 pyenv,或使用虚拟环境。Zed 对 Python toolchain 和 REPL 内核是分开选择的。如果诊断结果与 REPL 不一致,可用 {#action toolchain::Select} 让 toolchain 与内核保持一致。更多内容请参阅 Python 的 toolchain 选择器

R(Ark 内核)

下载与你操作系统对应的发行版来安装 Ark。例如在 macOS 上,只需解压出 ark 二进制文件并放入 /usr/local/bin,然后运行:

ark --install

R(Xeus 内核)

  • 安装 Xeus-R
  • 为 Zed 安装 R 扩展(在 Zed 扩展中搜索 R

TypeScript: Deno

deno jupyter --install

Julia

  • 官方网站下载并安装 Julia。
  • 为 Zed 安装 Julia 扩展(在 Zed 扩展中搜索 Julia

Scala

  • 使用 cs setup(Coursier)安装 Scala
    • brew install coursier/formulas/coursier && cs setup
  • REPL(Almond)设置指南
    • brew install --cask temurin(Eclipse 基金会官方 OpenJDK 二进制文件)
    • brew install coursier/formulas/coursier && cs setup
    • coursier launch --use-bootstrap almond -- --install

按语言切换使用的内核

Zed 会自动检测可用的内核,并在内核选择器中列出:

  • 推荐:与你当前激活的工具链匹配的 Python 环境(如果检测到)
  • Python 环境:虚拟环境(venv, virtualenv, Poetry, Pipenv, Conda, uv 等)
  • Jupyter 内核:已安装的 Jupyter kernelspecs
  • 远程服务器:已连接的远程 Jupyter 服务器

安装 ipykernel

即使未安装 ipykernel,Python 环境也会出现在选择器中。缺少 ipykernel 的环境会变暗并显示“未安装 ipykernel”。选中该环境后,Zed 会自动在该环境中运行 pip install ipykernel,并在安装完成后将其激活。

Zed 如何推荐内核

运行代码时,Zed 会自动选择一个内核:

  1. 激活工具链匹配:如果某个 Python 环境与你当前激活的工具链匹配且已安装 ipykernel,Zed 将使用它
  2. 首个可用的 Python 环境:否则,选择第一个安装了 ipykernel 的 Python 环境
  3. 基于语言的备选方案:若没有 Python 环境就绪,Zed 将选择与代码块语言匹配的 Jupyter kernel

你可以从选择器中手动指定一个 kernel 来覆盖上述行为。

设置默认 Kernel

若要为特定语言配置不同的默认 kernel,可在 settings.json 中为任何支持的语言指定 kernel:

{
  "jupyter": {
    "kernel_selections": {
      "python": "conda-env",
      "typescript": "deno",
      "javascript": "deno",
      "r": "ark"
    }
  }
}

交互式输入

当代码执行需要用户输入时(例如调用 Python 的 input() 函数),REPL 会在代码单元的输出下方显示输入提示。

在文本框中输入响应并按下 Enter 键提交。Kernel 会接收该输入并继续执行。

对于密码输入,出于安全考虑,字符将以星号掩码显示。

如果在输入提示激活期间中断了执行,当 kernel 恢复空闲状态时,该提示将自动清除。

调试 Kernelspec

通过 {#action repl::Sessions} 命令可显示可用的 kernel。要刷新可用的 kernel,请使用 {#action repl::RefreshKernelspecs} 命令。

如果你已安装 jupyter,可以运行 jupyter kernelspec list 查看可用的 kernel。

$ jupyter kernelspec list
Available kernels:
  ark                   /Users/z/Library/Jupyter/kernels/ark
  conda-base            /Users/z/Library/Jupyter/kernels/conda-base
  deno                  /Users/z/Library/Jupyter/kernels/deno
  python-chatlab-dev    /Users/z/Library/Jupyter/kernels/python-chatlab-dev
  python3               /Users/z/Library/Jupyter/kernels/python3
  ruby                  /Users/z/Library/Jupyter/kernels/ruby
  rust                  /Users/z/Library/Jupyter/kernels/rust

注意:Zed 会尽力利用 sys.prefixCONDA_PREFIX 在 Python 环境中查找 kernel。如果你想显式控制这一行为,可以在对应环境中运行 python -m ipykernel install --user --name myenv --display-name "Python (myenv)" 直接安装 kernel。

评论 (0)