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

第143章 Zed 编辑器 CLI 命令行参考指南

使用 Zed 的命令行界面(CLI)来打开文件和目录、集成其他工具,或在脚本中控制 Zed。

安装

macOS:在命令面板({#kb command_palette::Toggle})中运行 {#action cli::InstallCliBinary} 命令,即可将 zed CLI 安装到 /usr/local/bin/zed

Linux:CLI 已包含在 Zed 安装包中。二进制文件名因发行版而异(通常是 zedzeditor)。

Windows:CLI 已包含在 Zed 中。将 Zed 的安装目录加入 PATH,或直接使用 zed.exe 的完整路径。

用法

zed [OPTIONS] [PATHS]...

打开文件和目录

打开一个文件:

zed myfile.txt

以工作区方式打开一个目录:

zed ~/projects/myproject

打开多个文件或目录:

zed file1.txt file2.txt ~/projects/myproject

在指定行列打开文件:

zed myfile.txt:42        # 在第 42 行打开
zed myfile.txt:42:10     # 在第 42 行第 10 列打开

选项

-w, --wait

等待所有已打开的文件关闭后 CLI 才退出。打开目录时,则等待窗口关闭。

这在与那些期望编辑器阻塞直到编辑完成的工具集成时很有用(例如 git commit):

export EDITOR="zed --wait"
git commit  # 打开 Zed 并等待你关闭提交信息文件

-n, --new

在新工作区窗口中打开路径,即使这些路径已在现有窗口中打开:

zed -n ~/projects/myproject

-a, --add

将路径添加到当前焦点工作区,而不是打开新窗口。当有多个工作区窗口时,文件会在焦点窗口中打开:

zed -a newfile.txt

-r, --reuse

复用现有窗口,用新路径替换其当前工作区:

zed -r ~/projects/different-project

-e, --existing

在现有 Zed 窗口中打开路径,而非新建窗口:

zed -e myfile.txt

默认情况下(未使用 -n-a-r-e),目录会在当前窗口的侧边栏中打开。你可以通过 cli_default_open_behavior 设置项更改此默认行为。更多详情参见 Windows & Projects

--diff <OLD_PATH> <NEW_PATH>

打开差异视图以对比两个文件。可多次指定:

zed --diff file1.txt file2.txt
zed --diff old.rs new.rs --diff old2.rs new2.rs

--foreground

在前台运行 Zed,保持终端连接。适用于调试:

zed --foreground

--user-data-dir <DIR>

使用自定义目录存放所有用户数据(数据库、扩展、日志),替代默认位置:

zed --user-data-dir ~/.zed-custom

默认位置:

  • macOS: ~/Library/Application Support/Zed
  • Linux: $XDG_DATA_HOME/zed(通常为 ~/.local/share/zed
  • Windows: %LOCALAPPDATA%\Zed

-v, --version

打印 Zed 版本号并退出:

zed --version

--completions <SHELL>

zed CLI 生成 Shell 自动补全脚本:

Bash

添加到 ~/.bashrc

eval "$(zed --completions bash)"

Elvish

添加到 ~/.config/elvish/rc.elv

set edit:completion:arg-completer[zed] = { |@args|
    eval (zed --completions elvish | slurp)
    $edit:completion:arg-completer[zed] $@args
}

Fish

添加到 ~/.config/fish/config.fish

zed --completions fish | source

Nushell

将以下内容添加到 ~/.config/nushell/config.nu 中:

mkdir ($nu.data-dir | path join "vendor/autoload")
^zed --completions nushell | save --force ($nu.data-dir | path join "vendor/autoload/zed.nu")

Powershell

将以下内容添加到 $PROFILE 中:

(&zed --completions powershell) | Out-String | Invoke-Expression

Zsh

将以下内容添加到 ~/.zshrc 中:

eval "$(zed --completions zsh)"

--uninstall

卸载 Zed 并删除所有相关文件(仅限 macOS 和 Linux):

zed --uninstall

--zed <PATH>

指定 Zed 应用程序或二进制的自定义路径:

zed --zed /path/to/Zed.app myfile.txt

从标准输入读取

通过传递 - 作为路径,可以从标准输入(stdin)读取内容:

echo "Hello, World!" | zed -
cat myfile.txt | zed -
ps aux | zed -

这会将标准输入的内容创建一个临时文件,并在 Zed 中打开它。

URL 处理

该 CLI 可以打开 zed://file://ssh:// URL:

zed zed://settings
zed file:///Users/whatever/.zshrc
zed ssh://me@example.com/abs/path
zed ssh://me@example.com:/abs/path
zed ssh://me@example.com/~/project
zed ssh://me@example.com:~/project

将 Zed 设为默认编辑器

将 Zed 设置为 Git 及其他工具的默认编辑器:

export EDITOR="zed --wait"
export VISUAL="zed --wait"

将这些行添加到你的 Shell 配置文件中(例如 ~/.bashrc~/.zshrc)。

macOS:切换发布渠道

在 macOS 上,你可以将渠道名称作为第一个参数传递,以启动特定的发布渠道:

zed --stable myfile.txt
zed --preview myfile.txt
zed --nightly myfile.txt

WSL 集成(Windows)

在 Windows 上,该 CLI 支持打开 WSL 发行版中的路径。从 WSL 内部启动 Zed 时,此操作会自动处理。

退出码

代码 含义
0 成功
1 出错(详情输出到 stderr)

使用 --wait 时,退出码反映文件是否在关闭前已保存。

评论 (0)