zed/settings.json 和 zed/keymap.json 保存共用配置,使用 Zed 支持的 JSONC 格式。
来源是 Mac 上的现有配置,保留主题、字体、面板、AI 和语言设置。
当前没有自定义任务或片段,因此没有创建空的 tasks.json 或 snippets/。
只管理这两个文件,不同步账号凭据、聊天记录、缓存或整个 Zed 配置目录。
在每台机器上,先将本仓库放到固定位置,关闭 Zed,再从仓库根目录执行以下命令。
命令会备份已有配置并创建文件软链接;重复执行时会跳过已经正确链接的文件。
macOS 使用 ~/.config/zed,Linux 也支持 XDG_CONFIG_HOME。
(
set -eu
dotfiles_dir="$(pwd -P)"
test -f "$dotfiles_dir/zed/settings.json"
test -f "$dotfiles_dir/zed/keymap.json"
zed_config_dir="$HOME/.config/zed"
if [ "$(uname -s)" = "Linux" ]; then
zed_config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/zed"
fi
mkdir -p "$zed_config_dir"
zed_backup_dir=""
for zed_file in settings.json keymap.json; do
zed_source="$dotfiles_dir/zed/$zed_file"
zed_target="$zed_config_dir/$zed_file"
if [ -L "$zed_target" ] && [ "$(readlink "$zed_target")" = "$zed_source" ]; then
continue
fi
if [ -e "$zed_target" ] || [ -L "$zed_target" ]; then
if [ -z "$zed_backup_dir" ]; then
zed_backup_dir="$(mktemp -d "$zed_config_dir/dotfiles-backup.XXXXXX")"
printf '原配置备份到:%s\n' "$zed_backup_dir"
fi
mv "$zed_target" "$zed_backup_dir/$zed_file"
fi
ln -s "$zed_source" "$zed_target"
done
)重启 Zed 后使用仓库里的配置。备份位于本机配置目录中的 dotfiles-backup.*,
不会进入仓库。软链接依赖仓库位置,移动仓库后需重新执行上述命令。
- 快捷键使用
secondary:macOS 对应Cmd,Linux 对应Ctrl。secondary-,/secondary-.切换标签页,secondary-shift-e聚焦文件面板,secondary-shift-g聚焦 Git 面板。原先禁用Ctrl-Shift-G的规则仅在 macOS 生效, 避免覆盖 Linux 的 Git 面板快捷键。 - 两端自行安装
Ioskeley Mono字体,Git 不会同步系统字体。 auto_install_extensions声明自动安装当前使用的catppuccin主题和ruby扩展。- Ruby LSP 的启动命令使用
mise,不再绑定 Mac 的绝对路径。 如需启用语言服务器,两端的 Zed 项目环境必须能在PATH中找到mise, 且项目的 Bundler 环境需包含ruby-lsp。当前沿用enable_language_server: false。 - 沿用
disable_ai: false和现有 Copilot / Agent 设置;新设备需要自行登录相关服务。 保留的FIG_NEW_SESSION环境变量供本机终端集成使用。
接入软链接后,在 Zed 中修改设置会写入本仓库。检查 git diff,
确认没有密钥或令牌后,自行提交并推送;另一台机器先处理本地未提交修改,再运行
git pull --ff-only。这仍是手动 Git 同步,不会自动双向推送或解决冲突。
字体、账号登录和其他未声明的扩展需要在各设备单独配置。
