916 字
5 分钟

macOS 终极开发环境配置指南 (2026 版)

🚀 macOS 终极开发环境配置指南 (2026 版)#

这篇博客记录了我基于 Zsh + Oh My Zsh + Mise + Starship 构建的开发环境。核心思路是:工具现代化、路径去重、环境隔离、加载提速

1. 核心工具链安装清单#

在配置 .zshrc 之前,确保以下基础工具已安装:

  • 包管理: Homebrew

  • 终端框架: Oh My Zsh

  • 现代 CLI 替代品:

  • eza: ls 的增强版(带图标和 Git 状态)

  • bat: cat 的增强版(带语法高亮)

  • starship: 极速、跨 shell 的提示符

  • 多版本管理:

  • mise: 替代 nvm/rvm/asdf,统一管理 Node/Java/Bun/Go

  • miniconda: 负责 Python 科学计算环境


2. 核心配置文件 .zshrc 详解#

这是整个环境的大脑。建议直接覆盖 ~/.zshrc

💾 完整配置代码备份#

Terminal window
# ==============================================================================
# 1. 核心环境变量 & 基础路径
# ==============================================================================
export ZSH="$HOME/.oh-my-zsh"
export LANG="en_US.UTF-8"
# 优雅地构造 PATH: 自动去重并设定优先级 (用户自定义 > Homebrew > 系统)
typeset -U path
path=(
/opt/homebrew/bin
/usr/local/bin
$HOME/Documents/flutter/bin
$HOME/Documents/android/emulator
$HOME/Documents/android/platform-tools
$HOME/Documents/android/tools/bin
"/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
$HOME/.claude/bin
$HOME/.antigravity/antigravity/bin
$path
)
# ==============================================================================
# 2. 框架与插件加载 (Oh My Zsh)
# ==============================================================================
plugins=(
git
zsh-autosuggestions
zsh-completions
zsh-syntax-highlighting
zsh-z
)
# 补全增强 (Docker 等)
fpath=($HOME/.docker/completions $fpath)
source $ZSH/oh-my-zsh.sh
# ==============================================================================
# 3. 开发套件配置 (Flutter, Android, AI)
# ==============================================================================
# 镜像加速 (中科大源)
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
# 环境变量设置
export ANDROID_HOME=$HOME/Documents/android
launchctl setenv OLLAMA_ORIGINS "*"
# ==============================================================================
# 4. 高频效率工具 (Aliases & Functions)
# ==============================================================================
# --- 网络代理一键切换 ---
p() {
export http_proxy=http://127.0.0.1:7890
export https_proxy=$http_proxy
export all_proxy=socks5://127.0.0.1:7890
echo "🚀 Proxy ON (7890)"
}
dp() {
unset http_proxy https_proxy all_proxy
echo "🛑 Proxy OFF"
}
# --- 端口杀手 ---
# 使用方法:kp 3000 (快速关闭占用 3000 端口的进程)
kp() { lsof -iTCP:$1 -sTCP:LISTEN -t | xargs -r kill -9; }
# --- 现代 CLI 别名 ---
if command -v eza > /dev/null; then
alias ls='eza --icons --group-directories-first'
alias ll='eza -lh --icons --git --group-directories-first --time-style=long-iso'
alias la='eza -a --icons --git --group-directories-first'
alias lt='eza --tree --level=2 --icons'
fi
if command -v bat > /dev/null; then
alias cat='bat --style=header,grid,numbers'
alias b='bat'
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
fi
# ==============================================================================
# 5. 运行时管理 (Mise, Conda, Direnv)
# ==============================================================================
# Conda 初始化 (按需加载)
[ -f "/opt/homebrew/Caskroom/miniconda/base/bin/conda" ] && eval "$('/opt/homebrew/Caskroom/miniconda/base/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
# Mise (管理 Node, Java, Bun 等)
if command -v mise > /dev/null; then
eval "$(mise activate zsh)"
# 快速切版本别名
alias j8="mise shell java@zulu-8"; alias j17="mise shell java@temurin-17"
alias n18="mise shell node@18"; alias n20="mise shell node@20"
fi
# Direnv (进入目录自动切换环境变量)
command -v direnv > /dev/null && eval "$(direnv hook zsh)"
# ==============================================================================
# 6. 提示符 (Starship) - 必须放在最后
# ==============================================================================
command -v starship > /dev/null && eval "$(starship init zsh)"

3. 配置亮点说明#

🛡️ typeset -U path 的魔力#

这是 Zsh 的高级特性。它会将 PATH 标记为唯一值数组。这意味着无论你执行多少次 source ~/.zshrc,你的环境变量中都不会出现重复的路径条目,有效避免了路径冗余导致的查找变慢。

🛠️ Mise: 一个顶五个#

我抛弃了 nvmjenvMise 是 Rust 写的,加载速度极快。

  • 通过 mise install node@20 安装。
  • 通过项目根目录的 .mise.toml 自动切换版本。
  • 配置中预留了 j8n20 等别名,用于临时覆盖当前 Shell 版本。

🎨 现代感十足的 UI#

  • Starship: 提供了极简且包含所有关键信息(Git 分支、执行时间、环境版本)的状态栏。
  • eza & bat: 让文件列表和内容查看不再枯燥,彩色图标和语法高亮让 Debug 效率倍增。

🧹 端口杀手 kp#

这是开发者的刚需。当你启动项目发现 Port 3000 is already in use 时,只需输入 kp 3000,剩下的交给脚本。


4. 如何在新机上快速恢复?#

  1. 安装 Homebrew。
  2. brew install oh-my-zsh mise starship eza bat direnv miniconda
  3. 将上述代码贴入 ~/.zshrc
  4. 安装 zsh 插件:
Terminal window
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  1. 执行 source ~/.zshrc

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

macOS 终极开发环境配置指南 (2026 版)
https://blog.hypoy.cn/posts/macos/modern-macos-dev-stack-the-2026-edition/
作者
Hypoy
发布于
2026-02-27
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Hypoy
Hello, I'm Hypoy.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
站点统计
文章
10
分类
5
标签
23
总字数
10,584
运行时长
0
最后活动
0 天前

目录