新买的 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 等必要工具:

Terminal window
xcode-select --install

弹出对话框后点击「安装」即可。验证安装:

Terminal window
git --version
# git version 2.39.5 (Apple Git-154)

1.2 macOS 系统设置(可选)

install.sh 脚本包含以下系统优化设置,可根据需要选择执行:

系统名称和时区:

Terminal window
# 设置计算机名
sudo scutil --set ComputerName "chensoul-mac"
sudo scutil --set HostName "chensoul-mac"
sudo scutil --set LocalHostName "chensoul-mac"
# 设置时区
sudo systemsetup -settimezone "Asia/Shanghai"

安全和键盘设置:

Terminal window
# 取消 4 位数密码限制
sudo pwpolicy -clearaccountpolicies
# 允许安装任意来源的应用
sudo spctl --master-disable
# 加快键盘重复速度
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain InitialKeyRepeat -int 10

滚动条和动画:

Terminal window
# 显示滚动条
defaults write NSGlobalDomain AppleShowScrollBars -string "WhenScrolling"
# 禁用不必要的动画(提升响应速度)
defaults write com.apple.dock launchanim -bool false
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
defaults write com.apple.dock expose-animation-duration -float 0.1
# 加快对话框显示速度
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

Finder 设置:

Terminal window
# 显示文件扩展名
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# 显示路径栏和状态栏
defaults write com.apple.finder ShowPathbar -bool true
defaults 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 true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

应用更改:

Terminal window
# 重启 Dock 和 Finder 使设置生效
killall Dock
killall Finder

提示:以上设置已集成到 install.sh 脚本中,运行脚本会自动应用。

1.3 安装 Homebrew

macOS 的包管理器,后续所有软件都通过它安装:

国内用户推荐使用镜像源加速访问:

Terminal window
# 使用清华大学镜像源安装 Homebrew
export 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:

Terminal window
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"

验证:

Terminal window
brew --version
# Homebrew 4.x.x

第二步:配置 Dotfiles

我使用 chezmoi 管理所有配置文件,它支持 Git 版本控制和 GPG 加密。

2.1 克隆 Dotfiles 仓库

Terminal window
mkdir -p ~/github/dotfiles
git clone https://github.com/chensoul/dotfiles.git ~/github/dotfiles
cd ~/github/dotfiles

2.2 安装 Homebrew 软件

仓库中的 Brewfile 包含了所有需要安装的软件:

Terminal window
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 应用配置文件

Terminal window
chezmoi init --apply ~/github/dotfiles

如果有 GPG 加密文件,会提示输入密码。

2.4 切换默认 Shell

Terminal window
# 将 zsh 设为默认 shell
chsh -s /opt/homebrew/bin/zsh

重启终端后,提示符会从 user@MacBook ~ % 变成带颜色图标的样式。

提示:Nerd Font 已通过 Brewfile 自动安装,无需手动执行。Starship 的 Catppuccin Powerline 主题需要手动应用(见第三步)。

第三步:终端配置

3.1 安装 Ghostty 终端

Ghostty 是一款现代化的终端模拟器:

Terminal window
brew install --cask ghostty

打开 Ghostty,它会自动读取 ~/.config/ghostty/config 配置:

# 窗口大小(Ghostty 1.3+)
window-width = 120
window-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+ 版本移除了 themebell-features 等选项,配置文件已相应更新。

3.2 安装 Nerd Font

Starship 的图标需要 Nerd Font 支持:

Terminal window
brew install --cask font-jetbrains-mono-nerd-font

重启 Ghostty 后生效。

3.3 Starship 提示符

Starship 已随 Brewfile 安装。我使用 Catppuccin Powerline 主题,采用权力线(Powerline)风格的彩色分隔块效果。

应用主题:

Terminal window
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 版本:

Terminal window
# 安装最新版 Node.js
fnm install latest
fnm default latest
# 验证
node -v # v24.14.0
pnpm -v # 10.33.0

项目级别的版本通过 .nvmrc 自动切换。

4.2 Java 和 Maven

使用 SDKMAN 管理 Java 版本:

Terminal window
# 安装 Java 25
sdk install java 25.0.2-graal
# 安装 Java 17
sdk install java 17.0.12-graal
# 安装 Java 8(旧项目需要)
sdk install java 8.0.482-amzn
# 设置默认版本
sdk default java 17.0.12-graal
# 安装 Maven
sdk install maven

验证:

Terminal window
java -version
# openjdk version "17.0.12"
mvn -version
# Apache Maven 3.9.14

4.3 Python 和 uv

Terminal window
# uv 是快速的 Python 包管理器
brew install uv python@3.14
# 创建虚拟环境
uv venv
source .venv/bin/activate
# 安装包
uv add requests pytest

第五步:开发工具配置

5.1 编辑器

安装 Cursor(VS Code 分支,AI 增强):

Terminal window
brew install --cask cursor

安装 IntelliJ IDEA:

Terminal window
brew install --cask intellij-idea

5.2 Git 增强

安装 Delta(Git diff 增强):

Terminal window
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 = diff3

5.3 数据库和 API 工具

Terminal window
# 数据库客户端
brew install --cask tableplus
# API 测试
brew install --cask insomnia
# 或者使用 CLI 工具
brew install xh # HTTPie 替代

第六步:生产力和通讯

6.1 必装应用

Terminal window
# 密码管理
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 typora

6.2 网络工具

Terminal window
# Hosts 管理
brew install --cask switchhosts
# Docker 替代(更轻量)
brew install --cask orbstack

第七步:个性化配置

7.1 Zsh 插件管理

使用 Sheldon 作为插件管理器,配置更简洁、加载更快。Sheldon 是 Rust 编写的高性能 zsh 插件管理器。

安装 Sheldon:

Terminal window
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 只需一行:

Terminal window
eval "$(command sheldon source)"

优势:

  • Sheldon 自动克隆插件到本地 ~/.local/share/sheldon/repos/
  • Lock 文件固定版本,跨机器一致
  • 并行加载,速度更快
  • 支持 git、github、gist、local 等多种来源

7.2 别名和函数管理

所有 Shell 别名和函数已抽离到独立文件中:

Terminal window
# ~/.zshrc 中配置
source ~/.aliases
source ~/.myrc
source ~/.zsh_functions

第八步:验证和收尾

8.1 验证安装

Terminal window
# Shell 和提示符
zsh --version # 5.9
starship --version # 1.24.2
# 终端
ghostty --version # 1.3.1
# 开发工具
git --version # 2.39.5
node -v # v24.14.0
java -version # 17.0.12

8.2 配置 Git 用户信息

Terminal window
git config --global user.name "chensoul"
git config --global user.email "ichensoul@gmail.com"
# 配置 GPG 签名(可选)
git config --global commit.gpgsign true

8.3 SSH 密钥

Terminal window
# 生成新密钥
ssh-keygen -t ed25519 -C "ichensoul@gmail.com"
# 添加到 SSH agent
cat ~/.ssh/id_ed25519.pub | pbcopy # 复制到剪贴板
# 然后添加到 GitHub/GitLab

第九步:数据恢复

9.1 iCloud 同步

如果启用了 iCloud 同步,以下数据会自动恢复:

  • ~/Documents - 文档
  • ~/Desktop - 桌面
  • ~/Pictures - 照片

9.2 密钥和凭据

  • 1Password:登录后同步所有密码
  • SSH 密钥:从 dotfiles 或重新生成
  • GPG 密钥:从备份恢复或重新生成

附录:Chezmoi 管理文件清单

加密敏感文件

对于包含密钥、密码的文件,使用 GPG 加密:

Terminal window
# 加密文件
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 配置

运行:

Terminal window
cd ~/github/dotfiles
bash install.sh

注意:脚本中的计算机名、GitHub 用户名等需要根据实际情况修改。

总结

按照以上步骤,大约 30 分钟可以完成从零到可用的开发环境配置。

核心思路

  1. 配置即代码:所有配置文件版本化,可重现
  2. 工具现代化:zsh、eza、bat、fd 提升体验
  3. 自动化优先:能用脚本不手动
  4. 安全加密:敏感信息 GPG 加密

参考资源

后续更新:本文会根据工具更新和个人配置变化持续维护,最新版请查看我的 dotfiles 仓库