第143章 Zed 编辑器 CLI 命令行参考指南
使用 Zed 的命令行界面(CLI)来打开文件和目录、集成其他工具,或在脚本中控制 Zed。
安装
macOS:在命令面板({#kb command_palette::Toggle})中运行 {#action cli::InstallCliBinary} 命令,即可将 zed CLI 安装到 /usr/local/bin/zed。
Linux:CLI 已包含在 Zed 安装包中。二进制文件名因发行版而异(通常是 zed 或 zeditor)。
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 时,退出码反映文件是否在关闭前已保存。