新买的 Mac 或者刚重装完系统,如何快速恢复到熟悉的开发环境?本文记录我从零开始配置 macOS 开发环境的完整流程,所有命令和配置都已实践验证。
注:本文已更新于 2026-04-14,主要变化是用 Sheldon 替代 zinit 管理 zsh 插件。更详细的配置清单请参阅 macOS 开发环境配置清单。
环境信息
- 系统:macOS 14+ (Darwin 24.6.0)
- 芯片:Apple M1 (arm64)
- 时间:2026 年 4 月(更新于 2026-04-14)
第一步:系统初始化工具
1.1 安装 Xcode Command Line Tools
这是 macOS 开发的基础,提供 Git、Clang 等必要工具:
xcode-select --install弹出对话框后点击「安装」即可。验证安装:
git --version# git version 2.39.5 (Apple Git-154)1.2 macOS 系统设置(可选)
install.sh 脚本包含以下系统优化设置,可根据需要选择执行:
系统名称和时区:
# 设置计算机名sudo scutil --set ComputerName "chensoul-mac"sudo scutil --set HostName "chensoul-mac"sudo scutil --set LocalHostName "chensoul-mac"
# 设置时区sudo systemsetup -settimezone "Asia/Shanghai"安全和键盘设置:
# 取消 4 位数密码限制sudo pwpolicy -clearaccountpolicies
# 允许安装任意来源的应用sudo spctl --master-disable
# 加快键盘重复速度defaults write NSGlobalDomain KeyRepeat -int 1defaults write NSGlobalDomain InitialKeyRepeat -int 10滚动条和动画:
# 显示滚动条defaults write NSGlobalDomain AppleShowScrollBars -string "WhenScrolling"
# 禁用不必要的动画(提升响应速度)defaults write com.apple.dock launchanim -bool falsedefaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool falsedefaults write com.apple.dock expose-animation-duration -float 0.1
# 加快对话框显示速度defaults write NSGlobalDomain NSWindowResizeTime -float 0.001Finder 设置:
# 显示文件扩展名defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# 显示路径栏和状态栏defaults write com.apple.finder ShowPathbar -bool truedefaults write com.apple.finder ShowStatusBar -bool true
# 默认搜索当前文件夹defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
# 禁用创建 .DS_Store 文件(网络卷和 USB)defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool truedefaults write com.apple.desktopservices DSDontWriteUSBStores -bool true应用更改:
# 重启 Dock 和 Finder 使设置生效killall Dockkillall Finder提示:以上设置已集成到
install.sh脚本中,运行脚本会自动应用。
1.3 安装 Homebrew
macOS 的包管理器,后续所有软件都通过它安装:
国内用户推荐使用镜像源加速访问:
# 使用清华大学镜像源安装 Homebrewexport HOMEBREW_INSTALL_FROM_ZIP=1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装完成后,配置镜像源环境变量已包含在 dotfiles 的 Brewfile 中,运行 install.sh 会自动应用。
然后将 Homebrew 添加到 PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrceval "$(/opt/homebrew/bin/brew shellenv)"验证:
brew --version# Homebrew 4.x.x第二步:配置 Dotfiles
我使用 chezmoi 管理所有配置文件,它支持 Git 版本控制和 GPG 加密。
2.1 克隆 Dotfiles 仓库
mkdir -p ~/github/dotfilesgit clone https://github.com/chensoul/dotfiles.git ~/github/dotfilescd ~/github/dotfiles2.2 安装 Homebrew 软件
仓库中的 Brewfile 包含了所有需要安装的软件:
brew bundle --file=Brewfile这会一次性安装:
- Shell 工具:zsh、starship、zoxide、sheldon
- 开发语言:node、python、maven、sdkman、fnm、uv
- 命令行增强:bat、eza、fd、ripgrep、delta、jq、just
- 开发工具:chezmoi、gnupg、webp、wget、pipx、zsh-syntax-highlighting、zsh-autosuggestions
- 字体:font-jetbrains-mono-nerd-font
2.3 应用配置文件
chezmoi init --apply ~/github/dotfiles如果有 GPG 加密文件,会提示输入密码。
2.4 切换默认 Shell
# 将 zsh 设为默认 shellchsh -s /opt/homebrew/bin/zsh重启终端后,提示符会从 user@MacBook ~ % 变成带颜色图标的样式。
提示:Nerd Font 已通过 Brewfile 自动安装,无需手动执行。Starship 的 Catppuccin Powerline 主题需要手动应用(见第三步)。
第三步:终端配置
3.1 安装 Ghostty 终端
Ghostty 是一款现代化的终端模拟器:
brew install --cask ghostty打开 Ghostty,它会自动读取 ~/.config/ghostty/config 配置:
# 窗口大小(Ghostty 1.3+)window-width = 120window-height = 40
# 字体(必须先安装 Nerd Font)font-family = "JetBrainsMono Nerd Font"font-size = 14
# macOS 特定macos-option-as-alt = true
# 透明度background-opacity = 0.95
# 滚动历史(100MB)scrollback-limit = 100000000
# 关闭确认confirm-close-surface = true注意:Ghostty 1.3+ 版本移除了
theme和bell-features等选项,配置文件已相应更新。
3.2 安装 Nerd Font
Starship 的图标需要 Nerd Font 支持:
brew install --cask font-jetbrains-mono-nerd-font重启 Ghostty 后生效。
3.3 Starship 提示符
Starship 已随 Brewfile 安装。我使用 Catppuccin Powerline 主题,采用权力线(Powerline)风格的彩色分隔块效果。
应用主题:
starship preset catppuccin-powerline -o ~/.config/starship.toml主题特点:
| 颜色块 | 内容 |
|---|---|
| 红色 | 操作系统 + 用户名 |
| 橙色 | 当前目录 |
| 黄色 | Git 分支 + 状态 |
| 绿色 | 语言版本(Node.js、Java、Python 等) |
| 蓝色 | Conda 环境 |
| 紫色 | 时间 + 命令执行时长 |
配色方案:
配置文件使用 Catppuccin Mocha(深色)配色,支持 4 种变体:
- Mocha - 深色主题(默认)
- Frappe - 中等对比度
- Latte - 浅色主题
- Macchiato - 柔和深色
提示:配置文件已包含完整的颜色定义,无需额外安装主题。必须安装 Nerd Font 才能正确显示图标。
第四步:开发语言环境
4.1 Node.js 和 pnpm
使用 fnm 管理 Node 版本:
# 安装最新版 Node.jsfnm install latestfnm default latest
# 验证node -v # v24.14.0pnpm -v # 10.33.0项目级别的版本通过 .nvmrc 自动切换。
4.2 Java 和 Maven
使用 SDKMAN 管理 Java 版本:
# 安装 Java 25sdk install java 25.0.2-graal
# 安装 Java 17sdk install java 17.0.12-graal
# 安装 Java 8(旧项目需要)sdk install java 8.0.482-amzn
# 设置默认版本sdk default java 17.0.12-graal
# 安装 Mavensdk install maven验证:
java -version# openjdk version "17.0.12"mvn -version# Apache Maven 3.9.144.3 Python 和 uv
# uv 是快速的 Python 包管理器brew install uv python@3.14
# 创建虚拟环境uv venvsource .venv/bin/activate
# 安装包uv add requests pytest第五步:开发工具配置
5.1 编辑器
安装 Cursor(VS Code 分支,AI 增强):
brew install --cask cursor安装 IntelliJ IDEA:
brew install --cask intellij-idea5.2 Git 增强
安装 Delta(Git diff 增强):
brew install git-delta配置 ~/.gitconfig:
[core] pager = delta
[interactive] diffFilter = delta --color-only
[delta] navigate = true side-by-side = true line-numbers = true
[merge] conflictstyle = diff35.3 数据库和 API 工具
# 数据库客户端brew install --cask tableplus
# API 测试brew install --cask insomnia
# 或者使用 CLI 工具brew install xh # HTTPie 替代第六步:生产力和通讯
6.1 必装应用
# 密码管理brew install --cask 1password
# 通讯brew install --cask feishu # 飞书brew install --cask wechat # 微信brew install --cask ayugram # Telegram
# 浏览器brew install --cask google-chrome
# Markdown 编辑器brew install --cask typora6.2 网络工具
# Hosts 管理brew install --cask switchhosts
# Docker 替代(更轻量)brew install --cask orbstack第七步:个性化配置
7.1 Zsh 插件管理
使用 Sheldon 作为插件管理器,配置更简洁、加载更快。Sheldon 是 Rust 编写的高性能 zsh 插件管理器。
安装 Sheldon:
brew install sheldon配置文件 ~/.config/sheldon/plugins.toml:
shell = "zsh"
[templates]source = """{% for file in files %}source "{{ file }}"\n{% endfor %}"""
# zsh-completions - 额外补全定义[plugins.zsh-completions]git = "https://github.com/zsh-users/zsh-completions"apply = ["fpath"]
# zsh-syntax-highlighting - 语法高亮[plugins.zsh-syntax-highlighting]git = "https://github.com/zsh-users/zsh-syntax-highlighting"apply = ["source"]
# zsh-autosuggestions - 自动建议[plugins.zsh-autosuggestions]git = "https://github.com/zsh-users/zsh-autosuggestions"apply = ["source"]
# Starship 提示符[plugins.starship]inline = 'eval "$(starship init zsh)"'
# zoxide 目录跳转[plugins.zoxide]inline = 'eval "$(zoxide init zsh)"'~/.zshrc 只需一行:
eval "$(command sheldon source)"优势:
- Sheldon 自动克隆插件到本地
~/.local/share/sheldon/repos/ - Lock 文件固定版本,跨机器一致
- 并行加载,速度更快
- 支持 git、github、gist、local 等多种来源
7.2 别名和函数管理
所有 Shell 别名和函数已抽离到独立文件中:
# ~/.zshrc 中配置source ~/.aliasessource ~/.myrcsource ~/.zsh_functions第八步:验证和收尾
8.1 验证安装
# Shell 和提示符zsh --version # 5.9starship --version # 1.24.2
# 终端ghostty --version # 1.3.1
# 开发工具git --version # 2.39.5node -v # v24.14.0java -version # 17.0.128.2 配置 Git 用户信息
git config --global user.name "chensoul"git config --global user.email "ichensoul@gmail.com"
# 配置 GPG 签名(可选)git config --global commit.gpgsign true8.3 SSH 密钥
# 生成新密钥ssh-keygen -t ed25519 -C "ichensoul@gmail.com"
# 添加到 SSH agentcat ~/.ssh/id_ed25519.pub | pbcopy # 复制到剪贴板# 然后添加到 GitHub/GitLab第九步:数据恢复
9.1 iCloud 同步
如果启用了 iCloud 同步,以下数据会自动恢复:
~/Documents- 文档~/Desktop- 桌面~/Pictures- 照片
9.2 密钥和凭据
- 1Password:登录后同步所有密码
- SSH 密钥:从 dotfiles 或重新生成
- GPG 密钥:从备份恢复或重新生成
附录:Chezmoi 管理文件清单
加密敏感文件
对于包含密钥、密码的文件,使用 GPG 加密:
# 加密文件chezmoi add --encrypt ~/.wakatime.cfg
# 解密查看chezmoi cat ~/.wakatime.cfg
# 编辑加密文件chezmoi edit ~/.wakatime.cfg加密后的文件以 .asc 后缀存储在 dotfiles 仓库中,只有拥有 GPG 私钥才能解密。
我的 Dotfiles 目录结构
dotfiles/├── Brewfile # Homebrew 软件清单(含镜像源配置)├── install.sh # 一键安装脚本(含 macOS 系统设置)├── README.md # 说明文档├── .chezmoiignore # 忽略文件列表├── .aliases # Zsh 别名├── .myrc # Zsh 自定义配置├── .zsh_functions # Zsh 函数├── dot_config/│ ├── starship.toml # Starship(Catppuccin Powerline 主题)│ ├── ghostty/config # Ghostty 终端配置│ ├── sheldon/plugins.toml # Sheldon 插件配置│ └── rclone/ # Rclone 配置├── dot_ssh/│ └── config # SSH 配置├── encrypted_dot_wakatime.cfg.asc # WakaTime 配置(加密)└── executable_dot_gitconfig # Git 配置运行:
cd ~/github/dotfilesbash install.sh注意:脚本中的计算机名、GitHub 用户名等需要根据实际情况修改。
总结
按照以上步骤,大约 30 分钟可以完成从零到可用的开发环境配置。
核心思路
- 配置即代码:所有配置文件版本化,可重现
- 工具现代化:zsh、eza、bat、fd 提升体验
- 自动化优先:能用脚本不手动
- 安全加密:敏感信息 GPG 加密
参考资源
后续更新:本文会根据工具更新和个人配置变化持续维护,最新版请查看我的 dotfiles 仓库。