第138章 如何从 VS Code 迁移到 Zed:指南与设置导入
本指南介绍如何从 VS Code 迁移到 Zed,而无需重新搭建你的工作流。
内容涵盖哪些设置会自动导入、哪些快捷键可以直接对应,以及哪些行为存在差异,帮助你快速上手。
安装 Zed
Zed 支持 macOS、Windows 和 Linux。
macOS 用户可以从 zed.dev/download 下载,或通过 Homebrew 安装:
brew install --cask zed
对大多数 Linux 用户来说,最简单的安装方式是使用我们的安装脚本:
curl -f https://zed.dev/install.sh | sh
安装完成后,macOS 用户可以从「应用程序」文件夹启动 Zed,Linux 用户可以直接在终端运行:
zed .
这会在 Zed 中打开当前目录。
从 VS Code 导入设置
在初始设置过程中,你可以选择从 VS Code 导入关键设置。Zed 会导入以下设置:
从 VS Code 导入的设置
使用 Import Settings from VS Code 功能时,以下 VS Code 设置会被自动导入:
编辑器
| VS Code 设置 | Zed 设置 |
|---|---|
editor.fontFamily |
buffer_font_family |
editor.fontSize |
buffer_font_size |
editor.fontWeight |
buffer_font_weight |
editor.tabSize |
tab_size |
editor.insertSpaces |
hard_tabs(取反) |
editor.wordWrap |
soft_wrap |
editor.wordWrapColumn |
preferred_line_length |
editor.cursorStyle |
cursor_shape |
editor.cursorBlinking |
cursor_blink |
editor.renderLineHighlight |
current_line_highlight |
editor.lineNumbers |
gutter.line_numbers、relative_line_numbers |
editor.showFoldingControls |
gutter.folds |
editor.minimap.enabled |
minimap.show |
editor.minimap.autohide |
minimap.show |
editor.minimap.showSlider |
minimap.thumb |
editor.minimap.maxColumn |
minimap.max_width_columns |
editor.stickyScroll.enabled |
sticky_scroll.enabled |
editor.scrollbar.horizontal |
scrollbar.axes.horizontal |
editor.scrollbar.vertical |
scrollbar.axes.vertical |
editor.mouseWheelScrollSensitivity |
scroll_sensitivity |
editor.fastScrollSensitivity |
fast_scroll_sensitivity |
editor.cursorSurroundingLines |
vertical_scroll_margin |
editor.hover.enabled |
hover_popover_enabled |
editor.hover.delay |
hover_popover_delay |
editor.hover.sticky |
hover_popover_sticky |
editor.hover.hidingDelay |
hover_popover_hiding_delay |
editor.parameterHints.enabled |
auto_signature_help |
workbench.editor.languageDetection |
language_detection |
editor.multiCursorModifier |
multi_cursor_modifier |
editor.selectionHighlight |
selection_highlight |
editor.roundedSelection |
rounded_selection |
editor.find.seedSearchStringFromSelection |
seed_search_query_from_cursor |
editor.rulers |
wrap_guides |
editor.renderWhitespace |
show_whitespaces |
editor.guides.indentation |
indent_guides.enabled |
editor.linkedEditing |
linked_edits |
editor.autoSurround |
use_auto_surround |
editor.formatOnSave |
format_on_save |
editor.formatOnPaste |
auto_indent_on_paste |
editor.formatOnType |
use_on_type_format |
editor.trimAutoWhitespace |
remove_trailing_whitespace_on_save |
editor.suggestOnTriggerCharacters |
show_completions_on_input |
editor.suggest.showWords |
completions.words |
editor.inlineSuggest.enabled |
show_edit_predictions |
文件与工作区
| VS Code 设置 | Zed 设置 |
|---|---|
files.autoSave |
autosave |
files.autoSaveDelay |
autosave.milliseconds |
files.insertFinalNewline |
ensure_final_newline_on_save |
files.associations |
file_types |
files.watcherExclude |
file_scan_exclusions |
files.watcherInclude |
file_scan_inclusions |
files.simpleDialog.enable |
use_system_path_prompts |
search.smartCase |
use_smartcase_search |
search.useIgnoreFiles |
search.include_ignored |
终端
| VS Code 设置 | Zed 设置 |
|---|---|
terminal.integrated.fontFamily |
terminal.font_family |
terminal.integrated.fontSize |
terminal.font_size |
terminal.integrated.lineHeight |
terminal.line_height |
terminal.integrated.cursorStyle |
terminal.cursor_shape |
terminal.integrated.cursorBlinking |
terminal.blinking |
terminal.integrated.copyOnSelection |
terminal.copy_on_select |
terminal.integrated.scrollback |
terminal.max_scroll_history_lines |
terminal.integrated.macOptionIsMeta |
terminal.option_as_meta |
terminal.integrated.{platform}Exec |
terminal.shell |
terminal.integrated.env.{platform} |
terminal.env |
标签页与面板
| VS Code 设置 | Zed 设置 |
|---|---|
workbench.editor.showTabs |
tab_bar.show |
workbench.editor.showIcons |
tabs.file_icons |
workbench.editor.tabActionLocation |
tabs.close_position |
workbench.editor.tabActionCloseVisibility |
tabs.show_close_button |
workbench.editor.focusRecentEditorAfterClose |
tabs.activate_on_close |
workbench.editor.enablePreview |
preview_tabs.enabled |
workbench.editor.enablePreviewFromQuickOpen |
preview_tabs.enable_preview_from_file_finder |
workbench.editor.enablePreviewFromCodeNavigation |
preview_tabs.enable_preview_from_code_navigation |
workbench.editor.editorActionsLocation |
tab_bar.show_tab_bar_buttons |
workbench.editor.limit.enabled / value |
max_tabs |
workbench.editor.restoreViewState |
restore_on_file_reopen |
workbench.statusBar.visible |
status_bar.show |
项目面板(文件资源管理器)
| VS Code 设置 | Zed 设置 |
|---|---|
explorer.compactFolders |
project_panel.auto_fold_dirs |
explorer.autoReveal |
project_panel.auto_reveal_entries |
explorer.excludeGitIgnore |
project_panel.hide_gitignore |
problems.decorations.enabled |
project_panel.show_diagnostics |
explorer.decorations.badges |
project_panel.git_status |
Git
| VS Code 设置 | Zed 设置 |
|---|---|
git.enabled |
git_panel.button |
git.defaultBranchName |
git_panel.fallback_branch_name |
git.decorations.enabled |
git.inline_blame、project_panel.git_status |
git.blame.editorDecoration.enabled |
git.inline_blame.enabled |
窗口与行为
| VS Code 设置 | Zed 设置 |
|---|---|
window.confirmBeforeClose |
confirm_quit |
window.nativeTabs |
use_system_window_tabs |
window.closeWhenEmpty |
when_closing_with_no_tabs |
accessibility.dimUnfocused.enabled / opacity |
active_pane_modifiers.inactive_opacity |
其他
| VS Code 设置 | Zed 设置 |
|---|---|
http.proxy |
proxy |
npm.packageManager |
node.npm_path |
telemetry.telemetryLevel |
telemetry.metrics、telemetry.diagnostics |
outline.icons |
outline_panel.file_icons、outline_panel.folder_indicator |
chat.agent.enabled |
agent.enabled |
mcp |
context_servers |
Zed 不会导入扩展或快捷键映射,但此操作能将核心编辑器行为配置得接近你在 VS Code 中的设置。如果安装过程中跳过了该步骤,稍后仍可手动导入设置,方法是打开命令面板:
Cmd+Shift+P → {#action zed::ImportVsCodeSettings}
设置编辑器偏好
你可以大多数设置都可以通过设置编辑器进行配置({#kb zed::OpenSettings})。对于高级设置,在命令面板中运行 {#action zed::OpenSettingsFile},直接编辑设置文件即可。
以下是常见 VS Code 设置与 Zed 的对应关系: | VS Code | Zed | 备注 | | --- | --- | --- | | editor.fontFamily | buffer_font_family | Zed 默认使用 Zed Mono | | editor.fontSize | buffer_font_size | 以像素为单位 | | editor.tabSize | tab_size | 可按语言覆盖 | | editor.insertSpaces | insert_spaces | 布尔值 | | editor.formatOnSave | format_on_save | 需启用格式化器 | | editor.wordWrap | soft_wrap | 支持可选换行列宽 |
Zed 还支持按项目设置,在设置编辑器中也能找到这些选项。
打开或新建项目
设置完成后,按 Cmd+O(Linux 上为 Ctrl+O)打开文件夹。默认情况下,新文件夹会在当前窗口的线程侧边栏中打开,让你无需在多个窗口间切换即可处理多个项目。有关管理多个项目及在新窗口中打开的详细说明,请参阅 Windows & Projects。
若要启动新项目,先用终端或文件管理器创建目录,然后在 Zed 中打开。编辑器会将该文件夹视为项目根目录。
你也可以在任意文件夹内的终端中运行以下命令启动 Zed:
zed .
进入项目后,使用 Cmd+P 快速跳转文件。Cmd+Shift+P(Linux 上为 Ctrl+Shift+P)打开命令面板,用于执行操作/任务、切换设置或启动协作会话。
打开的缓冲区显示为顶部的标签页。项目面板展示文件树和 Git 状态。按 Cmd+B 可将其折叠,获得无干扰视图。
键盘快捷键差异
如果你在入门时选择了 VS Code 键位方案,大多数快捷键操作感应当然很熟悉。 以下是键位一致与差异的快速对照参考。
通用共享快捷键(Zed <> VS Code)
| 操作 | 快捷键 |
|---|---|
| 查找文件 | Cmd + P |
| 运行命令 | Cmd + Shift + P |
| 搜索文本(全项目范围) | Cmd + Shift + F |
| 查找符号(整个项目) | Cmd + T |
| 查找符号(当前文件) | Cmd + Shift + O |
| 切换左侧面板 | Cmd + B |
| 切换底部面板 | Cmd + J |
| 打开终端 | Ctrl + ~ |
| 打开文件树 | Cmd + Shift + E |
| 关闭当前缓冲区 | Cmd + W |
| 关闭整个项目 | Cmd + Shift + W |
| 重构:重命名符号 | F2 |
| 更换主题 | Cmd + K, Cmd + T |
| 自动换行 | Opt + Z |
| 切换已打开的标签页 | Cmd + Opt + 方向键 |
| 按语法折叠 / 展开 | Cmd + Opt + { 或 } |
不同的快捷键(Zed <> VS Code)
| 操作 | VS Code | Zed |
|---|---|---|
| 打开最近的项目 | Ctrl + R |
Cmd + Opt + O |
| 上移 / 下移行 | Opt + Up/Down |
Cmd + Ctrl + Up/Down |
| 拆分窗格 | Cmd + \ |
Cmd + K, 方向键 |
| 扩展选区 | Shift + Alt + Right |
Opt + Up |
Zed 独有
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 切换右侧面板 | Cmd + R 或 Cmd + Alt + B |
|
| 语法选区 | Opt + Up/Down |
按代码结构选择(比如选中括号内的内容)。 |
如何自定义快捷键
编辑快捷键的方法:
- 打开命令面板(
Cmd+Shift+P) - 运行 {#action zed::OpenKeymap}
这会打开所有可用快捷键绑定的列表。你可以覆盖单个快捷键、消除冲突,或者根据自己的习惯定制一套更顺手的布局。
Zed 也像 VS Code 一样支持组合键(多键序列),比如 Cmd+K Cmd+C。
用户界面的差异
项目与窗口
VS Code 采用专门的 Workspace 概念,支持多根文件夹、.code-workspace 文件,并明确区分“窗口”与“工作区”。
Zed 则采取了不同的设计理念。
在 Zed 中:
-
单窗口多项目:你可以在同一窗口中打开多个文件夹。每个项目都会显示在左侧的 threads 侧边栏中,你可以在它们之间切换,同时保留布局和 agent 线程。参见 Windows & Projects。
-
无工作区文件格式:没有类似
.code-workspace的机制。打开一个文件夹即代表你的项目上下文。 -
向项目添加文件夹:若希望在同一项目中包含多个文件夹(类似 VS Code 的多根模式),请使用 File > Add Folder to Project。这将为当前项目的文件树增加一个新的根目录。
-
项目级设置可选:你可以在项目内添加
.zed/settings.json文件,用于覆盖全局设置。 -
可从单文件或空窗口启动:Zed 不强制要求打开文件夹才能开始编辑。
这种设计带来了灵活性且不失简洁:既可以通过侧边栏在一个窗口管理多个项目,也可以通过 Add Folder to Project 在一个项目中管理多个文件夹。
项目内导航
在 VS Code 中,标准入口是打开文件夹,随后左侧面板成为导航的核心。 Zed 则另辟蹊径:
- 你仍然可以打开文件夹,但这并非必需。打开单个文件,甚至从一个空工作区开始,都是有效的操作方式。
- Command Palette(
Cmd+Shift+P)和 File Finder(Cmd+P)是主要的导航工具。File Finder 可在整个工作区中搜索文件、符号和命令。 - Zed 鼓励你通过以下方式替代持续显示的面板:
- 通过文件名模糊查找(
Cmd+P) - 直接跳转至符号(
Cmd+Shift+O) - 使用分屏和标签页来管理上下文,而非始终保持大型文件树展开(当然,如果你偏好这种方式,也可以利用 Project Panel 实现)。
Zed 的 UI 将辅助面板收纳起来,以确保导航始终聚焦于代码本身。
扩展 vs 应用市场
Zed 的扩展生态不如 VS Code 丰富,现有扩展主要集中在语言支持、主题、语法高亮及其他核心编辑增强功能上。
Zed 将许多在 VS Code 中依赖扩展实现的功能直接内置到了产品中:
- 实时协作,支持语音与光标共享(无需 Live Share)
- AI 编码辅助(无需 Copilot 扩展)
- 内置终端面板
- 全项目模糊搜索
- 基于 JSON 配置的任务运行器
- 通过 LSP 提供内联诊断与代码操作
你无法为每一个 VS Code 扩展找到一一对应的替代品,尤其是在使用 DevOps、容器或测试运行器相关工具时。Zed 的扩展目录仍在不断扩充,但规模依然较小。
Zed 与 VS Code 的协作对比
与 VS Code 不同,Zed 的协作功能是核心体验的一部分,无需额外安装扩展。
- 在左侧停靠区打开协作面板(Collab Panel)。
- 创建一个频道,并邀请协作者加入。
- 直接共享你的屏幕或代码库。
连接建立后,你可以实时看到彼此的光标、选区及编辑操作。内置的语音聊天功能让你可以边工作边交流,全程无需借助外部工具或第三方账号登录。
了解 Zed 团队如何使用 Zed 来规划工作并进行协作。
在 Zed 中使用 AI
如果你习惯在 VS Code 中使用 GitHub Copilot,在 Zed 中也能实现相同体验。你也可以通过 Zed Pro 探索其他 AI 代理,或者自带密钥并免认证直接连接。如果偏好本地操作,你还可以完全禁用 AI 功能。
配置 GitHub Copilot
- 按
Cmd+,(macOS)或Ctrl+,(Linux/Windows)打开设置 - 导航至 AI → 编辑预测(Edit Predictions)
- 在“配置服务商(Configure Providers)”旁点击 配置(Configure)
- 在 GitHub Copilot 选项下,点击 登录 GitHub(Sign in to GitHub)
登录完成后,直接开始输入即可。Zed 会提供内联建议供你确认采纳。
其他 AI 选项
若要在 Zed 中使用其他 AI 模型,你有以下几种选择:
- 使用 Zed 官方托管的模型,速率限制更高。需要登录认证并通过 Zed Pro 订阅访问。
- 自带API 密钥,无需认证
- 使用外部代理,如 Claude Agent。
高级配置与效率调优
Zed 为追求精细化调校环境的高级用户提供了丰富的设置选项。
下面是几个实用的调优技巧:
保存时自动格式化:
"format_on_save": "on"
启用 direnv 支持:
"load_direnv": "shell_hook"
自定义任务:在 tasks.json 中定义构建或运行命令(通过命令面板打开:{#action zed::OpenTasks}):
[
{
"label": "build",
"command": "cargo build"
}
]
迁移自定义代码片段 直接把 VS Code 的 snippet JSON 复制到 Zed 的 snippets 文件夹即可(通过 {#action snippets::ConfigureSnippets} 打开)。