最近我入手了新款 MacBook Pro 16,性能确实让人印象深刻。但拿到新机的第一件事,往往不是跑分或体验新功能,而是把它从“出厂设置”调教成自己用着顺手、能高效工作的状态。这个过程并不算短,我大概花了几个小时才基本配置完成。
为了让后来者(或许就是正在看这篇文章的你)能少走些弯路,我把整个配置过程详细记录了下来,并结合了之前的一些笔记和最新的实践。这份指南涵盖了从网络、工具安装到系统细节优化的方方面面,希望能帮你更快地让你的新 Mac 变成得心应手的生产力伙伴。
目录
1. 初始设置:网络代理
在中国大陆或其他网络受限的环境下,配置代理是顺利进行后续步骤(如下载 Homebrew、更新软件源等)的关键。
-
安装代理工具:
- 你需要从你的代理服务提供商获取配置文件才能使用。
- 重要: 在进行 Homebrew 安装和后续的网络相关操作前,请确保你的代理客户端已启动并设置为系统代理,或在终端中配置了代理环境变量。
-
终端临时代理设置 (根据你的代理客户端设置的端口调整,常用的代理工具默认为 7890):
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
注意:这只对当前终端会话有效。推荐在
.zshrc
中设置别名或函数来快速开关代理(详见 Zsh 配置部分)。
2. 核心工具:Homebrew
Homebrew 是 macOS 的包管理器,用于安装和管理各种软件。
-
安装 Homebrew:
- 首先,确保安装了 Xcode Command Line Tools (如果未安装,Homebrew 安装脚本会自动提示安装):
xcode-select --install
- 然后运行官方安装脚本 (请确保代理已开启):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装完成后,根据提示将 Homebrew 添加到 PATH (通常会自动在
.zprofile
或.zshrc
中添加)。
- 首先,确保安装了 Xcode Command Line Tools (如果未安装,Homebrew 安装脚本会自动提示安装):
-
配置 Homebrew 国内镜像源 (可选,提高速度):
-
如果官方源下载缓慢,可以配置国内镜像。以下提供 USTC 和 Aliyun 的配置方法,请选择其一添加到你的
~/.zshrc
或~/.zshenv
文件中。 -
USTC 镜像:
export HOMEBREW_INSTALL_FROM_API=1 export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
-
Aliyun 镜像:
export HOMEBREW_INSTALL_FROM_API=1 export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-core.git"
-
配置后,运行
source ~/.zshrc
(或相应文件) 和brew update
使配置生效。
-
3. 安装应用程序和命令行工具
使用 Homebrew 可以方便地安装 GUI 应用 (Casks) 和命令行工具 (Formulae)。
-
查找可用包:
- GUI 应用: Homebrew Cask Search
- 命令行工具: Homebrew Core Search
-
安装 Casks (GUI 应用):
- 下面是 Cask 列表,包含了常用的开发、效率和日常应用。
adobe-creative-cloud
: Adobe 创意云套件adobe-creative-cloud-cleaner-tool
: Adobe 清理工具adrive
: 阿里云盘android-platform-tools
: Android SDK Platform-Toolsandroid-studio
: Android 开发 IDEbaidunetdisk
: 百度网盘bob
: 翻译和 OCR 工具claude
: Claude 客户端clion
: C/C++ IDEcursor
: AI 代码编辑器datagrip
: 数据库 IDEfeishu
: 飞书figma
: UI 设计工具flutter
: Flutter SDKgit-credential-manager
: Git 凭证管理器github
: GitHub Desktop 客户端google-chrome
: 谷歌浏览器iina
: 现代视频播放器intellij-idea
: Java IDEmotrix
: 下载工具obs
: 直播和录屏软件obsidian
: 笔记软件ollama
: 本地运行大型语言模型orbstack
: Docker Desktop 替代品postman
: API 测试工具pycharm
: Python IDEraycast
: 启动器与效率工具rustrover
: Rust IDEsourcetree
: Git GUI 客户端steam
: 游戏平台tencent-lemon
: 腾讯柠檬清理visual-studio-code
: 代码编辑器vmware-fusion
: 虚拟机软件warp
: 现代终端webstorm
: 前端 IDEwechatwebdevtools
: 微信开发者工具wireshark
: 网络协议分析器
- 安装命令 (确保代理已开启):
brew install --cask \ adobe-creative-cloud \ adobe-creative-cloud-cleaner-tool \ adrive \ android-platform-tools \ android-studio \ baidunetdisk \ battle-net \ bob \ claude \ clion \ cursor \ datagrip \ feishu \ figma \ flutter \ git-credential-manager \ github \ google-chrome \ gstreamer-runtime \ hbuilderx \ iina \ intellij-idea \ motrix \ obs \ obsidian \ ollama \ orbstack \ postman \ pycharm \ raspberry-pi-imager \ raycast \ rustrover \ sourcetree \ steam \ tencent-lemon \ visual-studio-code \ vmware-fusion \ warp \ webstorm \ wechatwebdevtools \ wireshark
- 下面是 Cask 列表,包含了常用的开发、效率和日常应用。
-
安装 Formulae (命令行工具):
- 以下是常用的 CLI 工具。
autojump
: 快速目录跳转工具bat
:cat
的替代品,带语法高亮和 Git 集成diff-so-fancy
: 增强git diff
输出的可读性fd
:find
的替代品,简单快速ffmpeg
: 音视频处理工具fzf
: 通用的命令行模糊查找器go
: Go 语言开发环境gh
: GitHub 官方命令行工具git
: 版本控制系统 (Homebrew 会安装更新版本)mkcert
: 创建本地信任的开发证书nvm
: Node 版本管理器openjdk
: Java 开发环境pnpm
: 高效的 Node 包管理器tldr
: 社区驱动的简化 man pagestree
: 显示目录树结构wget
: 网络下载工具yarn
: Node 包管理器
- 安装命令 (确保代理已开启):
brew install \ autojump \ bat \ diff-so-fancy \ fd \ ffmpeg \ fzf \ go \ gh \ git \ mkcert \ nvm \ openjdk \ pnpm \ tldr \ tree \ wget
- 以下是常用的 CLI 工具。
-
(可选) 安装
ni
和live-server
:- 这两个工具在
.zshrc
的别名配置中被引用。
npm install -g @antfu/ni # 统一的包管理器命令 npm install -g live-server # 简单的本地开发服务器
- 这两个工具在
-
通过 Mac App Store 安装:
- VidHub
- Bob
- 根据需要添加其他应用
-
手动安装或通过其他渠道:
-
Bartender (菜单栏管理)
- Downie (视频下载)
- Typora (Markdown 编辑器)
- 根据需要添加其他应用
-
4. 准备本地目录结构
良好的目录结构有助于管理代码和配置文件。
- 建议结构:
~/Code
: 用于存放所有代码仓库。~/Documents/SoftwareConfiguration
: 用于存放软件的配置文件 (如 Raycast, VS Code 设置等)。- 你可以根据自己的习惯调整路径。
5. 配置核心 App
按照推荐顺序配置,可以减少重复设置。
Raycast (启动器与效率工具)
- 配置:
- 登录账号同步配置 (如果之前使用过)。
- 设置 Snippets (文本片段)。
- 优化快捷键: 分配易于记忆且不冲突的快捷键给常用应用或 Raycast 功能。
- 示例:
⌥ + D
:启动开发工具,如 DataGrip。⌥ + G
:启动 GoLand。⌥ + W
:打开 WebStorm 或其他开发工具。⌥ + V
:快速打开 微信,方便日常沟通。
- 示例:
- 探索 Raycast Store 安装所需扩展。
- 官网: Raycast
Warp (终端) 与 Zsh (Shell环境)
提供现代化、高效的命令行体验。
-
安装 Oh My Zsh (流行的 Zsh 配置框架):
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" omz update source ~/.zshrc
-
安装 Starship (跨 Shell 的极速、可定制 Prompt):
brew install starship # 将以下行添加到 ~/.zshrc 文件末尾 echo 'eval "$(starship init zsh)"' >> ~/.zshrc
- 官网: Starship
-
安装 Zsh 插件 (增强 Shell 功能):
# Clone recommended Zsh plugins into Oh My Zsh custom plugins directory # 将推荐的 Zsh 插件克隆到 Oh My Zsh 自定义插件目录 # Auto suggestions based on history / 基于历史记录的自动建议 git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions # Syntax highlighting for commands / 命令语法高亮 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting # Additional completions for Zsh / Zsh 补全增强 git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions # Fast directory jumping based on frequency / 基于使用频率的快速目录跳转 (frecent) git clone https://github.com/agkozak/zsh-z $ZSH_CUSTOM/plugins/zsh-z
-
配置
~/.zshrc
:# -------------------------------- # # Homebrew Configuration # -------------------------------- # export HOMEBREW_INSTALL_FROM_API=1 export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" # -------------------------------- # # Oh-My-Zsh Configuration # -------------------------------- # # Set the path to the Oh My Zsh installation directory. # 设置 Oh My Zsh 的安装目录路径。 export ZSH="$HOME/.oh-my-zsh" # -------------------------------- # # Oh-My-Zsh Theme and Plugins # -------------------------------- # # git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1 # ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme" ZSH_THEME="spaceship" # -------------------------------- # # Plugins # Define which plugins to load for Oh My Zsh. # -------------------------------- # # 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 # git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions # git clone https://github.com/agkozak/zsh-z $ZSH_CUSTOM/plugins/zsh-z plugins=( git zsh-autosuggestions zsh-completions zsh-syntax-highlighting zsh-z ) # Load Oh My Zsh. This should be done after setting ZSH_THEME and plugins. # 加载 Oh My Zsh。应在设置 ZSH_THEME 和 plugins 后执行。 # Documentation: [https://ohmyz.sh/](https://ohmyz.sh/) source $ZSH/oh-my-zsh.sh # -------------------------------- # # Environment Variables / 环境变量配置 # -------------------------------- # # -- Java Environment -- # Add Homebrew installed OpenJDK to the PATH. # 将 Homebrew 安装的 OpenJDK 添加到 PATH 环境变量。 # Assumes OpenJDK was installed via `brew install openjdk`. # 假设已通过 `brew install openjdk` 安装。 export PATH="/opt/homebrew/opt/openjdk/bin:$PATH" # -- Go (Golang) Development Environment -- # Set GOPATH: The root of your Go workspace. Recommended: $HOME/go. # 设置 GOPATH: Go 工作区的根目录。推荐设置为 $HOME/go。 export GOPATH="$HOME/go" # Add the Go workspace's bin directory to PATH for running installed binaries. # 将 Go 工作区的 bin 目录添加到 PATH,以便运行 `go install` 安装的程序。 export PATH="$PATH:$GOPATH/bin" # GOROOT is usually managed automatically by Go, no need to set it manually. # GOROOT 通常由 Go 自动管理,无需手动设置。 # -- Node Version Manager (NVM) -- # Set the directory where NVM stores Node versions. # 设置 NVM 存储 Node 版本的目录。 export NVM_DIR="$HOME/.nvm" # Load NVM script if it exists. # 如果 NVM 脚本存在则加载。 [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # Load NVM bash_completion script if it exists. # 如果 NVM bash_completion 脚本存在则加载。 [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # -------------------------------- # # Starship Prompt Initialization / Starship 提示符初始化 # -------------------------------- # # Initialize Starship prompt. This overrides the ZSH_THEME prompt. # 初始化 Starship 提示符。这将覆盖 ZSH_THEME 设置的提示符。 eval "$(starship init zsh)" # -------------------------------- # # Aliases and Functions / 别名与函数 # -------------------------------- # # -- Node Package Manager Aliases (using antfu/ni) -- # Requires `npm install -g @antfu/ni`. Provides a unified interface (ni, nu, nr, etc.). # 需要先执行 `npm install -g @antfu/ni`。提供统一的包管理命令 (ni, nu, nr 等)。 # Source: [https://github.com/antfu/ni](https://github.com/antfu/ni) alias ni='ni' # Install dependencies / 安装依赖 alias nu='ni -u' # Update dependencies / 更新依赖 alias nci='ni --frozen' # Clean install (using lockfile) / 清洁安装 (使用锁文件) alias na='ni add' # Add dependency / 添加依赖 alias nr='nr' # Run script / 运行脚本 alias nio="ni --prefer-offline" # Install preferring offline cache / 优先使用离线缓存安装 alias s="nr start" # Alias for `nr start` / `nr start` 的别名 alias d="nr dev" # Alias for `nr dev` alias b="nr build" # Alias for `nr build` alias bw="nr build --watch" # Alias for `nr build --watch` alias t="nr test" # Alias for `nr test` alias tu="nr test -u" # Alias for `nr test -u` (update snapshots) alias tw="nr test --watch" # Alias for `nr test --watch` alias w="nr watch" # Alias for `nr watch` alias c="nr typecheck" # Alias for `nr typecheck` alias lint="nr lint" # Alias for `nr lint` alias lintf="nr lint --fix" # Alias for `nr lint --fix` alias release="nr release" # Alias for `nr release` alias re="nr release" # Shorter alias for `nr release` alias up="taze latest -r -w" # -- Git Aliases -- # Go to the top level of the git repository / 跳转到 Git 仓库的根目录 alias grt='cd "$(git rev-parse --show-toplevel)"' # Common Git commands / 常用 Git 命令别名 alias gs='git status' alias gp='git push' alias gpf='git push --force' # Force push (use with caution!) / 强制推送 (谨慎使用!) alias gpft='git push --follow-tags' # Push commits and tags / 推送提交和标签 alias gpl='git pull --rebase' # Pull with rebase / 使用 rebase 方式拉取更新 alias gcl='git clone' alias gst='git stash' # Stash changes / 暂存更改 alias grm='git rm' # Remove file from git / 从 Git 中移除文件 alias gmv='git mv' # Move/rename file in git / 在 Git 中移动/重命名文件 # Branch switching / 分支切换 alias main='git checkout main' # Switch to main branch (or master) / 切换到 main 分支 (或 master) alias gco='git checkout' # Alias for checkout / checkout 的别名 alias gcob='git checkout -b' # Create and switch to a new branch / 创建并切换到新分支 # Branch management / 分支管理 alias gb='git branch' # List branches / 列出分支 alias gbd='git branch -d' # Delete branch / 删除分支 # Rebasing / Rebase 操作 alias grb='git rebase' alias grbom='git rebase origin/main' # Rebase onto remote main/master / Rebase 到远程 main/master 分支 alias grbc='git rebase --continue' # Continue rebase after resolving conflicts / 解决冲突后继续 rebase # Logging / 查看日志 alias gl='git log' alias glo='git log --oneline --graph' # Compact graph log / 紧凑的图形化日志 # Resetting / 重置操作 alias grh='git reset HEAD' # Unstage changes / 取消暂存更改 alias grh1='git reset HEAD~1' # Unstage last commit / 取消最后一次提交 (保留更改) # Adding changes / 添加更改 alias ga='git add' alias gA='git add -A' # Add all changes (new, modified, deleted) / 添加所有更改 (新增、修改、删除) # Committing / 提交操作 alias gc='git commit' alias gcm='git commit -m' # Commit with message / 带信息提交 alias gca='git commit -a' # Add and commit modified/deleted files (not new) / 添加并提交修改/删除的文件 (不包括新文件) alias gcam='git add -A && git commit -m' # Add all and commit with message / 添加所有文件并带信息提交 # Fetching and Rebasing / 获取并 Rebase alias gfrb='git fetch origin && git rebase origin/main' # Fetch from origin and rebase onto main/master / 从 origin 获取并 rebase 到 main/master # Cleaning working directory / 清理工作目录 alias gxn='git clean -dn' # Dry run clean (show files to be removed) / 模拟清理 (显示将移除的文件) alias gx='git clean -df' # Force clean (remove untracked files/dirs) / 强制清理 (移除未跟踪的文件/目录) # Utility aliases / 实用别名 alias gsha='git rev-parse HEAD | pbcopy' # Copy current commit SHA to clipboard / 复制当前提交 SHA 到剪贴板 alias ghci='gh run list -L 1' # List latest GitHub Actions run / 列出最新的 GitHub Actions 运行记录 # Git log pretty function / 美化 Git 日志函数 # Usage: glp 5 (shows last 5 commits) / 用法: glp 5 (显示最近 5 次提交) function glp() { git --no-pager log -"$1" } # Git diff function with diff-so-fancy / 使用 diff-so-fancy 的 Git diff 函数 # Requires `brew install diff-so-fancy` / 需要 `brew install diff-so-fancy` # Usage: gd (diff unstaged) or gd HEAD~1 (diff against commit) / 用法: gd (对比未暂存) 或 gd HEAD~1 (对比特定提交) function gd() { if [[ -z "$1" ]]; then git diff --color | diff-so-fancy else git diff --color "$1" | diff-so-fancy fi } # Git diff cached function with diff-so-fancy / 使用 diff-so-fancy 的 Git diff --cached 函数 # Usage: gdc (diff staged changes) / 用法: gdc (对比已暂存的更改) function gdc() { if [[ -z "$1" ]]; then git diff --color --cached | diff-so-fancy else git diff --color --cached "$1" | diff-so-fancy fi } # GitHub CLI Pull Request function / GitHub CLI Pull Request 函数 # Usage: pr ls (list PRs) or pr 123 (checkout PR #123) / 用法: pr ls (列出PR) 或 pr 123 (切换到 PR #123) function pr() { if [ "$1" = "ls" ]; then gh pr list else gh pr checkout "$1" fi } # -- Directory Navigation Functions -- # Custom functions based on your preferred ~/Code structure. # 基于你偏好的 ~/Code 目录结构的自定义函数。 # Adjust paths if your structure is different. / 如果你的结构不同,请调整路径。 # Navigate to project directory under ~/Code/projects # 跳转到 ~/Code/projects 下的项目目录 function pj() { cd ~/Code/projects/"$1" } # Navigate to fork directory under ~/Code/forks # 跳转到 ~/Code/forks 下的 fork 目录 function fk() { cd ~/Code/forks/"$1" } # Navigate to reproduction directory under ~/Code/repros # 跳转到 ~/Code/repros 下的复现目录 function rp() { cd ~/Code/repros/"$1" } # -- Clone & Open Functions -- # Requires GitHub CLI (`gh`) and your IDE's command-line launcher (e.g., `webstorm`, `code`). # 需要 GitHub CLI (`gh`) 和你的 IDE 命令行启动器 (例如 `webstorm`, `code`)。 # Ensure the IDE launcher is in your PATH. / 确保 IDE 启动器在你的 PATH 中。 # Improved clone function using gh cli / 使用 gh cli 改进的 clone 函数 function clone() { local repo_url=$1 # Extract repo name as default target directory / 提取仓库名作为默认目标目录 local target_dir=${2:-$(basename "$repo_url" .git)} echo "Cloning $repo_url into $target_dir..." # Clone using gh and cd into it, return 1 on failure / 使用 gh 克隆并进入目录,失败时返回 1 gh repo clone "$repo_url" "$target_dir" && cd "$target_dir" || return 1 } # Clone to 'projects', open in WebStorm, return to previous dir / 克隆到 'projects' 目录, 用 WebStorm 打开, 返回之前目录 function cpj() { local target_path=~/Code/projects # Adjust path if needed / 如有需要调整路径 # Use subshell (...) to isolate cd and clone; && ensures webstorm runs only on success # 使用子 shell (...) 隔离 cd 和 clone;&& 确保只有 clone 成功才执行 webstorm (cd "$target_path" && clone "$@" && webstorm .) } # Clone to 'forks', open in WebStorm, return to previous dir / 克隆到 'forks' 目录... function cfk() { local target_path=~/Code/forks # Adjust path if needed / 如有需要调整路径 (cd "$target_path" && clone "$@" && webstorm .) } # Clone to 'repros', open in WebStorm, return to previous dir / 克隆到 'repros' 目录... function crp() { local target_path=~/Code/repros # Adjust path if needed / 如有需要调整路径 (cd "$target_path" && clone "$@" && webstorm .) } # -- Utility Functions -- # Create a directory and change into it / 创建目录并进入 # Usage: mkcd new_directory / 用法: mkcd new_directory function mkcd() { mkdir -p "$1" && cd "$1" } # Use live-server to serve a directory / 使用 live-server 提供目录服务 # Requires `npm install -g live-server` / 需要 `npm install -g live-server` # Usage: serve (serves ./dist) or serve public (serves ./public) / 用法: serve (服务 ./dist) 或 serve public (服务 ./public) function serve() { if [[ -z "$1" ]]; then live-server dist # Default to serving 'dist' directory / 默认服务 'dist' 目录 else live-server "$1" fi } # -------------------------------- # # Proxy Management / 代理管理 # -------------------------------- # # Functions to quickly enable/disable proxy environment variables. # 快速启用/禁用代理环境变量的函数。 # Adjust port numbers if your proxy uses different ones. / 如果你的代理使用不同端口,请调整端口号。 # Function to enable proxy / 启用代理函数 function p() { export https_proxy=http://127.0.0.1:7890 export http_proxy=http://127.0.0.1:7890 export all_proxy=socks5://127.0.0.1:7890 echo "Proxy enabled: http://127.0.0.1:7890" } # Function to disable the proxy manually / 手动禁用代理函数 function dp() { unset https_proxy unset http_proxy unset all_proxy echo "Proxy disabled" } # Enable Proxy at terminal start (optional, uncomment to enable) # 在终端启动时启用代理 (可选, 取消注释以启用) # p # --- Ensure NVM is loaded late (important for some setups) --- # --- 确保 NVM 在较后加载 (对某些设置很重要) --- # Source NVM scripts again to make sure they are available after all other initializations. # 再次 source NVM 脚本以确保它们在所有其他初始化之后可用。 [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # End of ~/.zshrc # -------------------------------- # # Ollama Configuration # -------------------------------- # launchctl setenv OLLAMA_ORIGINS "*" ___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh"; if [ -f "${___MY_VMOPTIONS_SHELL_FILE}" ]; then . "${___MY_VMOPTIONS_SHELL_FILE}"; fi setopt no_nomatch
- 重要: 配置完成后,运行
source ~/.zshrc
使更改生效。
- 重要: 配置完成后,运行
SSH 密钥配置
用于安全连接 GitHub 等服务。
-
生成 SSH 密钥 (推荐使用 ed25519):
mkdir -p ~/.ssh && chmod 700 ~/.ssh # 使用你的 GitHub 邮箱替换 "your_email@example.com" # 可以为 key 文件指定一个名称,如 github_id_ed25519 ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github_id_ed25519 # 按提示设置密码 (强烈推荐)
-
配置 SSH Agent (让系统记住密码):
- 编辑或创建
~/.ssh/config
文件,添加以下内容:Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/github_id_ed25519
- 将密钥添加到 macOS Keychain:
ssh-add --apple-use-keychain ~/.ssh/github_id_ed25519
- 编辑或创建
-
添加到 GitHub:
# 确保已安装 gh (brew install gh) 并登录 gh auth login # 将公钥添加到 GitHub,设置一个标题 gh ssh-key add ~/.ssh/github_id_ed25519.pub -t "My MacBook Pro Key"
安装字体
选择合适的编程字体和中文字体可以提升阅读体验。
- 推荐字体:
- 编程字体: JetBrains Mono (免费)
- 安装方法: 下载字体文件 (通常是
.ttf
或.otf
),双击打开,在弹出的 字体册 (Font Book) 应用中点击“安装字体”。
WebStorm (IDE)
JetBrains 的前端开发 IDE。
- 推荐配置:
- 插件: 安装常用插件,如:
- GitHub Copilot
- Atom Material Icons (或类似的图标主题)
- Rainbow Brackets (彩色括号)
- Translation (翻译插件)
- UnoCSS (如果你使用 UnoCSS)
- 根据需要安装其他插件 (如 Prettier, ESLint 等)
- 编辑器设置:
Settings/Preferences
>Editor
>General
>Code Completion
: 取消勾选Match case
(代码补全不区分大小写)。Settings/Preferences
>Appearance & Behavior
>Appearance
: 选择喜欢的主题 (如 Atom One Dark)。Settings/Preferences
>Editor
>Font
: 设置合适的字体 (如 JetBrains Mono) 和大小 (如 16-18)。
- 版本控制:
Settings/Preferences
>Version Control
>Commit
: 勾选Use non-modal commit interface
(使用非模态提交界面)。
- 插件: 安装常用插件,如:
Visual Studio Code (编辑器)
轻量且强大的代码编辑器。
- 配置同步: 你可以通过 GitHub Gist 或 VS Code 内置的
Settings Sync
功能来同步你的配置。我的配置分享在这里:kirklin/vscode-settings
。 - 推荐核心扩展:
- ESLint
- Prettier - Code formatter
- GitLens — Git supercharged
- Docker
- GitHub Copilot
- Material Icon Theme (或其他图标主题)
- 根据你的开发语言和框架安装相应扩展
Git (版本控制)
配置全局用户信息和一些有用的默认行为。
-
配置用户信息:
git config --global user.name "Your Name" git config --global user.email "your_email@example.com"
-
配置默认推送行为:
# 推送当前分支到同名远程分支 git config --global push.default current # 如果远程分支不存在,自动创建 git config --global push.autoSetupRemote true
- 这样配置后,大多数情况下可以直接使用
git push
代替git push origin <branch-name>
。
- 这样配置后,大多数情况下可以直接使用
-
配置全局忽略文件 (
~/.gitignore_global
):- 创建或编辑
~/.gitignore_global
文件,添加不需要纳入版本控制的全局文件模式,例如:
# macOS specific .DS_Store *~ ._* .Spotlight-V100 .Trashes # IDE / Editor specific (根据你的常用工具添加) .idea/ # JetBrains IDEs .vscode/ # VS Code (如果不在项目 .gitignore 中) *.swp # Vim swap files # Build artifacts / Dependencies node_modules/ npm-debug.log* yarn-debug.log* yarn-error.log*
- 告诉 Git 使用这个全局忽略文件:
git config --global core.excludesfile ~/.gitignore_global
- 创建或编辑
NVM 与 Node.js
Node Version Manager (NVM) 用于管理多个 Node.js 版本。
- 安装 NVM: 已通过
brew install nvm
完成。确保.zshrc
中已正确加载 NVM。 - 安装 Node.js (推荐 LTS 版本):
- 查看当前 LTS 版本代号:
nvm ls-remote --lts
- 安装最新的 LTS 版本 (截至 2025 年初,LTS 是 v22 "Jod"):
nvm install --lts # 或者指定版本号,例如安装 v22 # nvm install 22
- 设置默认 Node 版本:
nvm alias default lts/* # 使用最新的 LTS 作为默认版本 # 或者 nvm alias default 22
- 验证安装:
node -v npm -v
- 查看当前 LTS 版本代号:
Bob (翻译与 OCR)
macOS 上的翻译和 OCR 工具。
- 安装: 已通过
brew install --cask bob
完成。 - 配置:
- 设置快捷键 (你的设置为
F19+A
划词翻译,F19+S
截图翻译)。 - 安装插件:
- bob-plugin-deeplx (需要自行配置 DeepLX API)
- bobplugin-google-translate
- 根据需要查找并安装其他 Bob 插件。
- 配置服务: 在 Bob 设置中添加和配置翻译服务 (如 DeepLX, Google Translate, 有道, 阿里等) 和 OCR 服务 (如腾讯 OCR)。
- 设置快捷键 (你的设置为
Obsidian (笔记软件)
强大的知识管理和笔记软件。
- 配置同步:
- Obsidian Sync: 官方同步服务,可以同步笔记、设置和主题,但插件需要手动安装或通过其他方式同步。
- Git: 可以将整个 Obsidian Vault (仓库) 作为 Git 仓库进行版本控制和同步。
- 重要: 在使用 Git 同步时,务必将
.obsidian/workspace.json
和.obsidian/workspaces/
目录下的文件添加到.gitignore
中,以避免因窗口布局等本地状态导致的冲突。
# .gitignore for Obsidian Vault .obsidian/workspace.json .obsidian/workspaces/
- 重要: 在使用 Git 同步时,务必将
- 结合使用: 可以使用 Git 管理整个 Vault 的版本和插件,同时使用 Obsidian Sync 同步笔记内容,实现两全其美。
SourceTree (Git GUI)
免费的 Git 图形化客户端。
- 配置:
- 打开 SourceTree > Preferences (设置) > Git Tab。
- 重要: 选择
Use System Git
,而不是 Embedded Git,以确保 SourceTree 使用你通过 Homebrew 安装和配置的 Git 版本,避免潜在的路径或版本冲突问题。
6. 系统设置优化
调整 macOS 系统设置以符合个人习惯和效率需求。
- 系统设置 (System Settings):
- 通用 (General):
默认网页浏览器 (Default Web Browser)
: 设置为 Chrome 或 Edge 等你偏好的浏览器。语言与地区 (Language & Region)
: 将每周第一天 (First day of week)
改为星期一 (Monday)
。
- 桌面与程序坞 (Desktop & Dock):
程序坞 (Dock)
: 根据喜好调整大小、位置等。退出应用程序时关闭窗口 (Close windows when quitting an application)
: 默认是勾选的,取消勾选后,下次打开应用会恢复上次关闭时的窗口状态,对于某些应用(如终端、IDE)可能更方便。按需设置。调度中心 (Mission Control)
:- 取消勾选
根据最近使用情况自动重新排列空间 (Automatically rearrange Spaces based on most recent use)
,保持多桌面顺序固定。 触发角 (Hot Corners)
: 如果你使用 Raycast 或其他窗口管理工具,可以考虑禁用所有触发角,避免误触。
- 取消勾选
- 显示器 (Displays):
夜览 (Night Shift)
: 设置时间表或手动开启,减少蓝光。- 调整分辨率和亮度。
- 通知 (Notifications):
- 关闭不必要应用的通知权限,减少干扰。
- 聚焦 (Spotlight):
- 在
Siri & Spotlight
>Spotlight Privacy
中可以添加不想被索引的文件夹。 - 在搜索结果类别中,可以取消勾选不常用的类别,提高搜索精度和速度。
- 在
- 隐私与安全性 (Security & Privacy):
防火墙 (Firewall)
: 建议开启。- 检查各应用的权限授予情况 (位置、相机、麦克风等)。
- 触控板 (Trackpad):
- 自定义其他手势。
- 键盘 (Keyboard):
按键重复速度 (Key Repeat)
: 调到最快 (Fast
)。重复前延迟 (Delay Until Repeat)
: 调到最短 (Short
)。 需要适应,但适应后能极大提高光标移动效率。文本输入 (Text Input)
>编辑 (Edit...)
:- 关闭
自动纠正拼写 (Correct spelling automatically)
。 - 关闭
自动大写单词开头字母 (Capitalize words automatically)
。 - 确保
使用“ ”进行双引号输入 (Use smart quotes and dashes)
中的引号设置符合你的编程习惯 (通常建议使用直引号,即取消勾选或设置为直引号"
)。
- 关闭
输入法 (Input Sources)
: 添加并配置你喜欢的输入法 (如已安装的搜狗输入法),移除不需要的默认输入法。
- 触控 ID 与密码 (Touch ID & Password):
- 设置登录密码。
- 添加指纹。
将 Apple Watch 用于解锁 App 和 Mac (Use your Apple Watch to unlock your apps and Mac)
: 如果你有 Apple Watch,强烈建议开启。
- 共享 (Sharing):
电脑名称 (Computer Name)
: 设置一个简洁易记的名称。- 按需开启/关闭
屏幕共享 (Screen Sharing)
,文件共享 (File Sharing)
等,默认建议关闭不必要的共享服务。隔空播放接收器 (AirPlay Receiver)
可以保持开启。
- Siri 与聚焦 (Siri & Spotlight):
- 如果你不使用 Siri,可以禁用
用“嘿 Siri”唤醒 (Listen for "Hey Siri")
和按下侧边按钮使用 Siri (Press Side button for Siri)
。
- 如果你不使用 Siri,可以禁用
- 通用 (General):
配置完成!现在你的 MacBook Pro 应该已经具备了强大的生产力环境。记得定期使用 brew update && brew upgrade
更新你的软件。享受你的新 Mac 吧!