惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
量子位
IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
V
Visual Studio Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园 - 聂微东
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
博客园 - 司徒正美
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏

唐巧的博客

404 Not Found 《估值原理》读书笔记:价格背后的游戏、责任与社会秩序 关于渠道的思考 OpenConnector:给 AI Agent 加上一道凭据防火墙 从 Bartender 迁移到 Thaw 梁文锋四小时投资人会议有感 黑洞足迹本-AI 时代的一人 App 用 CLIProxyAPI 把 Codex 变成一个 OpenAI 兼容的 API 服务 如何写一篇 AI 味很重的文章 黑洞健身的进化 — AI 时代的一人 App 理解 Skill —— 读《图解 Skill》 玩教具行业的核心竞争力 更换搬瓦工 VPS IP 我不小心开了 273 个 Agent Rebase Hacker House 见闻 北京四环骑行一日游:69 公里 6 小时 了解 Claude Code 的提示词工程 HyperFrames 实战:用 HTML 写一支 41 秒的产品介绍视频 安庆之旅 Agent Loop 简介 在 Github 中通过创建 issue 来唤醒 claude 工作 让 Claude Code 在你睡觉时持续运行:完整实战指南 Claude Code 从 AWS Bedrock 切换到 Team 订阅指南 写给设计师:如何设计一份 AI 友好的设计规范 OpenClaw Memory Wiki 技术文档 利用 AI Agent, 将域名从 Godaddy 迁移到 Cloudflare AI 干活的三件套:CLI、MCP 和 Skill 到底是什么? 大家好,我是唐巧的龙虾 运动的科学原理与健康价值 - 读《锻炼》 WebRTC IP 泄露问题
从 Sublime Text 到 Zed
唐巧 · 2026-05-16 · via 唐巧的博客

从 Sublime Text 到 Zed

我用 Sublime Text 很多年了。它曾经是那个年代最好的编辑器:启动极快、界面干净、插件生态丰富。但这两年随着 AI 辅助编码成为日常,Sublime Text 的 AI 集成体验始终差一口气,我开始认真考虑迁移。

Zed 是一款由 Atom 和 Tree-sitter 的原班人马打造的编辑器,用 Rust 编写,主打两件事:极致的性能原生的 AI 协作。它的启动速度和文件响应比 VS Code 快得多,同时内置了对 Claude、GPT 等模型的支持,不需要额外装插件。界面风格上它和 Sublime Text 一脉相承——极简、无干扰——这让我迁移的心理成本低了不少。

用了一段时间之后,感觉不错,分享给大家。

安装 Zed CLI

打开 Zed,按下 cmd+shift+p,输入 Install,选择安装 cli。这一步会把 zed 命令行工具安装到 ~/.local/bin/zed,后面脚本依赖它来打开编辑器。

安装完成后在终端验证一下:

1
zed --version

装好 CLI 之后,日常在终端里就能直接调起 Zed,几个最常用的姿势:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

zed .


zed README.md


zed src/main.rs src/lib.rs


zed -n .


zed -w COMMIT_EDITMSG


zed --diff a.txt b.txt

在 Finder 的右键菜单中集成 Zed

macOS 内置了一套叫**快速操作(Quick Actions)**的机制,配合 Automator 可以把任意脚本挂到 Finder 的右键菜单里,可以做到把 Zed 集成到菜单里。

实现原理

macOS 的服务(Services)机制允许我们把一个 .workflow 文件注册为系统服务。当用户在 Finder 里右键某个文件夹时,系统会把选中的路径传入这个 workflow,由里面的 Shell 脚本来处理。

我们只需要让脚本调用 zed 命令打开对应路径即可。

安装步骤

第一步:创建 Automator Workflow

用下面这个一键生成脚本,在终端执行后会直接在当前目录产出 OpenInZed.workflow

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash


set -e
DEST="$HOME/Desktop/OpenInZed.workflow/Contents"
mkdir -p "$DEST"

cat > "$DEST/Info.plist" << 'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSServices</key>
<array>
<dict>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>在 Zed 中打开</string>
</dict>
<key>NSMessage</key>
<string>runWorkflowAsService</string>
<key>NSRequiredContext</key>
<dict>
<key>NSApplicationIdentifier</key>
<string>com.apple.finder</string>
</dict>
<key>NSSendFileTypes</key>
<array>
<string>public.folder</string>
</array>
</dict>
</array>
</dict>
</plist>
PLIST

python3 - << 'PYEOF'
content = open('/dev/stdin').read() if False else r"""<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AMApplicationBuild</key><string>521.1</string>
<key>AMApplicationVersion</key><string>2.10</string>
<key>AMDocumentVersion</key><string>2</string>
<key>actions</key>
<array>
<dict>
<key>action</key>
<dict>
<key>ActionBundlePath</key>
<string>/System/Library/Automator/Run Shell Script.action</string>
<key>ActionName</key><string>Run Shell Script</string>
<key>ActionParameters</key>
<dict>
<key>COMMAND_STRING</key>
<string>for f in "$@"
do
if [ -d "$f" ]; then TARGET="$f"; else TARGET=$(dirname "$f"); fi
if command -v zed &amp;>/dev/null; then
zed -n "$TARGET"
elif [ -x "$HOME/.local/bin/zed" ]; then
"$HOME/.local/bin/zed" -n "$TARGET"
else
open -na "Zed" --args "$TARGET"
fi
done</string>
<key>CheckedForUserDefaultShell</key><true/>
<key>inputMethod</key><integer>1</integer>
<key>shell</key><string>/bin/bash</string>
<key>source</key><string></string>
</dict>
<key>BundleIdentifier</key>
<string>com.apple.automator.runShellScript</string>
<key>CFBundleVersion</key><string>2.0.3</string>
<key>CanShowSelectedItemsWhenRun</key><false/>
<key>CanShowWhenRun</key><true/>
<key>isViewVisible</key><true/>
</dict>
<key>isViewVisible</key><true/>
</dict>
</array>
<key>connectors</key><dict/>
<key>workflowMetaData</key>
<dict>
<key>serviceInputTypeIdentifier</key>
<string>com.apple.Automator.fileSystemObject.folder</string>
<key>serviceOutputTypeIdentifier</key>
<string>com.apple.Automator.nothing</string>
<key>serviceProcessesInput</key><integer>0</integer>
<key>workflowTypeIdentifier</key>
<string>com.apple.Automator.servicesMenu</string>
</dict>
</dict>
</plist>"""
import os
dest = os.path.expanduser("~/Desktop/OpenInZed.workflow/Contents/document.wflow")
with open(dest, "w") as f:
f.write(content)
print("document.wflow written")
PYEOF

echo "✅ OpenInZed.workflow 已生成到桌面,双击即可安装"

第二步:安装 Workflow

把生成好的 OpenInZed.workflow 双击打开,系统弹出确认框后点击**「安装」**即可。

第三步:刷新服务缓存

安装后在终端执行一次:

1
/System/Library/CoreServices/pbs -flush

这会强制 macOS 重新扫描已安装的服务,避免右键菜单没有立刻出现新选项。

第四步:在系统设置中确认启用

打开 系统设置 → 键盘 → 键盘快捷键 → 服务 → 文件和文件夹,找到「在 Zed 中打开」并勾选。

使用效果

配置完成后,在 Finder 中右键任意文件夹,选择 快速操作 → 在 Zed 中打开,Zed 会直接以该目录为工作区启动。

如果右键的是普通文件而非文件夹,脚本会自动取其父目录打开,不会报错。

几点说明

为什么不用 Finder 扩展(FinderSync)? FinderSync 需要开发一个完整的 Xcode 项目并签名,成本远高于 Automator workflow,对于这个简单需求来说完全没必要。

为什么脚本里要三重兜底? Zed 的 CLI 路径在不同安装方式下不一样。通过 Zed → Install CLI 安装的会在 ~/.local/bin/zed,手动加到 PATH 的会被 command -v zed 找到,而 open -a "Zed" 则是最后的保险,只要 Zed.app 在 /Applications 里就一定能用。

为什么脚本里都加了 -n Zed CLI 的默认行为是把新打开的目录加到当前已聚焦窗口的侧边栏,而不是新开一个窗口。从 Finder 触发时这种”复用”会让人误以为上一个工作区被覆盖、甚至”实例被隐藏”了。加上 -n--new)就能强制开一个独立窗口,原工作区保持原样。

如何卸载? 删除 ~/Library/Services/OpenInZed.workflow 这个文件夹即可,不会留下任何残余。