Mac dotfiles 配置管理仓库
这个仓库包含了 macOS 系统的配置文件和实用脚本,帮助快速设置和维护开发环境。
dotfiles/
├── README.md # 项目说明文档
├── install.sh # 一键安装脚本
├── scripts/ # 脚本文件目录
│ ├── setup/ # 设置和配置脚本
│ │ ├── dot_config.sh # dotfiles 符号链接管理脚本
│ │ ├── icloud_ln.sh # iCloud Drive 符号链接创建脚本
│ │ └── rime_ln.sh # Rime 输入法配置符号链接脚本
│ └── maintenance/ # 系统维护脚本
│ ├── clear_vscode_cache.sh # VS Code 缓存清理脚本
│ ├── icon_cache_clean.sh # macOS 图标缓存清理脚本
│ └── remove_localized.sh # 移除 macOS 本地化文件脚本
└── configs/ # 配置文件目录
├── .zshrc # Zsh 主配置文件
├── .zprofile # Zsh 登录配置文件
├── .zsh_scripts # 自定义 Zsh 函数和脚本
├── .gitconfig # Git 全局配置
├── .gitignore_global # Git 全局忽略文件
├── .vimrc # Vim 配置文件
└── .condarc # Conda 配置文件
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles
./install.sh这个脚本会自动:
- 检查必要的工具
- 设置 dotfiles 符号链接
- 询问是否设置 iCloud Drive 和 Rime 配置链接
- 提供后续配置建议
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles运行以下命令将配置文件链接到系统相应位置:
./scripts/setup/dot_config.sh这个脚本会创建以下符号链接:
~/.zshrc→configs/.zshrc(优化的高性能配置)~/.zprofile→configs/.zprofile~/.zsh_scripts→configs/.zsh_scripts~/.gitconfig→configs/.gitconfig~/.gitignore_global→configs/.gitignore_global~/.vimrc→configs/.vimrc~/.condarc→configs/.condarc
./scripts/setup/icloud_ln.sh这会在主目录创建一个指向 iCloud Drive 的符号链接 ~/iCloud。
./scripts/setup/rime_ln.sh这会将 iCloud Drive 中的 Rime 配置链接到系统位置。
- 功能: 自动创建 dotfiles 的符号链接
- 特点:
- 无备份模式,直接覆盖现有文件
- 自动检测源文件是否存在
- 支持相对路径配置
- 使用:
./scripts/setup/dot_config.sh
- 功能: 在主目录创建 iCloud Drive 的符号链接
- 目标:
~/iCloud→~/Library/Mobile Documents/com~apple~CloudDocs - 特点:
- 检查源目录是否存在
- 智能处理已存在的链接
- 安全的路径处理
- 使用:
./scripts/setup/icloud_ln.sh
- 功能: 链接 iCloud Drive 中的 Rime 输入法配置
- 目标:
~/Library/Rime→~/Library/Mobile Documents/com~apple~CloudDocs/Rime - 特点:
- 支持 Rime 配置云同步
- 自动检测配置目录
- 智能链接管理
- 使用:
./scripts/setup/rime_ln.sh
- 功能: 清理 VS Code 缓存和临时文件
- 清理内容:
- 缓存数据 (CachedData)
- 扩展缓存 (CachedExtensionVSIXs)
- 主缓存目录
- 用户数据(可选)
- 工作区存储(可选)
- 特点:
- 智能进程管理(优雅关闭 → SIGTERM → SIGKILL)
- 交互式确认
- 支持多种 VS Code 版本
- 使用:
./scripts/maintenance/clear_vscode_cache.sh
- 功能: 清理 macOS 图标缓存
- 清理内容:
- 用户级图标缓存
- Dock 图标缓存
- 效果: 修复图标显示异常问题
- 使用:
./scripts/maintenance/icon_cache_clean.sh
- 功能: 移除 macOS 系统目录的本地化文件
- 目标目录:
- Desktop, Documents, Downloads
- Movies, Music, Pictures, Public
- Applications (用户和系统)
- 效果: 将文件夹名称显示为英文
- 使用:
./scripts/maintenance/remove_localized.sh
精心优化的 Zsh 配置文件,按以下顺序组织:
-
Zsh 选项设置 - Shell 行为配置
- 自动切换目录 (
AUTO_CD)、目录栈管理 (AUTO_PUSHD) - 历史记录共享 (
SHARE_HISTORY)、去重 (HIST_IGNORE_DUPS) - 命令自动纠正 (
CORRECT)、通配符扩展 (EXTENDED_GLOB)
- 自动切换目录 (
-
历史记录配置 - 命令历史设置
- 历史文件:
~/.zsh_history,大小: 1000 条记录 - 智能历史记录管理
- 历史文件:
-
别名定义 - 精选实用别名
- 目录导航:
..,...,~ - 文件操作:
ll(详细列表),mkdir -p - 搜索工具:
grep,egrep,fgrep(带颜色) - Python:
python→python3,pip→pip3 - Git 别名:
ga,gaa,gs,gcm,gcv,gp,gl,gd,gco,gcb,gpl - 网络工具:
ip,ports
- 目录导航:
-
环境变量 - 系统路径和环境配置
- Homebrew: 智能路径缓存和自动更新控制
- Java: OpenJDK 环境配置
- Python: pyenv 路径配置
- 编辑器: vim 作为默认编辑器
- 语言: UTF-8 编码设置
-
补全系统 - 高性能补全配置
- 加载 zsh-completions 补全库
- 使用
compinit -C跳过安全检查,提升性能 - 菜单选择模式、大小写不敏感匹配
- 彩色补全列表
- 关键: 必须在语法高亮插件之前执行
-
Zsh 插件 - 核心插件加载
- 自定义脚本:
~/.zsh_scripts中的函数 - 命令建议: zsh-autosuggestions
- 历史搜索: zsh-history-substring-search
- 语法高亮: zsh-fast-syntax-highlighting - 在 compinit 之后加载
- 自定义脚本:
-
工具初始化 - 外部工具配置
- pyenv: Python 版本管理工具(条件加载)
- starship: 现代化提示符主题 - 放在最后
重要: 配置加载顺序经过精心设计,特别注意:
compinit必须在语法高亮插件之前执行fast-syntax-highlighting要在compinit之后加载- 这个配置追求简洁高效,包含了日常开发所需的核心功能
Zsh 登录时执行的配置文件
自定义函数集合:
mcd(): 创建目录并进入pfd(): 获取 Finder 当前目录路径cdf(): 切换到 Finder 当前目录copypath(): 复制路径到剪贴板
Git 全局配置文件,包含用户信息、别名、行为设置等
全局 Git 忽略文件,定义在所有仓库中都应忽略的文件类型
Vim 编辑器配置文件
Conda 包管理器配置文件
- 根据个人需求修改配置文件
- 运行
dot_config.sh创建符号链接 - 重启终端或执行
source ~/.zshrc使配置生效
- 使用
clear_vscode_cache.sh清理 VS Code 缓存 - 使用
icon_cache_clean.sh修复图标显示问题 - 使用
remove_localized.sh保持英文目录名
- 所有配置文件都通过符号链接管理
- 修改配置文件后会自动同步到仓库
- 可以通过 Git 进行版本控制和跨设备同步
- 将配置文件放入
configs/目录 - 在
scripts/setup/dot_config.sh中添加链接配置 - 运行脚本创建符号链接
如果需要修改文件路径,请同时更新:
- 脚本中的路径变量
- README 文档中的说明
- 相关的符号链接配置
- 运行脚本前请备份重要配置文件
- 某些脚本需要管理员权限(如
icon_cache_clean.sh) - 路径中包含用户名的脚本需要根据实际情况调整
- 建议在测试环境中先验证脚本功能
当前的 .zshrc 配置经过精心优化,实现了:
- 快速启动: 从 41秒 优化到 < 5秒
- 智能缓存: Homebrew 路径缓存,避免重复执行
brew --prefix - 高效补全: 使用
compinit -C跳过安全检查 - 条件加载: pyenv 等工具只在存在时才初始化
- 加载完整的 zsh-completions 库
- 使用优化的补全样式配置
- 正确的插件加载顺序,避免冲突
如果 .zshrc 加载仍然很慢,可以:
- 启用性能分析:取消注释文件开头的
zmodload zsh/zprof - 运行诊断脚本:
./debug_zshrc.sh - 考虑移除不需要的 zsh-completions
确保你的 macOS 系统已安装以下工具:
- Git
- Homebrew
- Zsh (macOS 默认)
-
安装必要的 Zsh 插件
# 使用 Homebrew 安装插件 brew install zsh-autosuggestions brew install zsh-fast-syntax-highlighting brew install zsh-history-substring-search brew install starship -
Python 环境配置
# 安装 pyenv brew install pyenv # 配置已包含在 .zshrc 中
设置用户信息和全局忽略文件:
# 设置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 设置全局忽略文件
git config --global core.excludesFile ~/.gitignore_global编辑 configs/.zshrc:
# 在 alias 部分添加
alias myalias="your command here"编辑 configs/.zsh_scripts:
# 添加新函数
function myfunction() {
# your function code here
}编辑 configs/.zshrc:
# 在 export 部分添加
export MY_VAR="value"
export PATH="$MY_PATH:$PATH"# 检查符号链接状态
ls -la ~/.*rc ~/.*profile
# 重新创建符号链接
./scripts/setup/dot_config.sh# 确保脚本有执行权限
chmod +x scripts/setup/*.sh
chmod +x scripts/maintenance/*.sh# 在运行脚本前备份
cp ~/.zshrc ~/.zshrc.backup
cp ~/.gitconfig ~/.gitconfig.backup
# ... 其他重要配置文件# 如果需要恢复
mv ~/.zshrc.backup ~/.zshrc
# 或者删除符号链接后恢复
rm ~/.zshrc && mv ~/.zshrc.backup ~/.zshrccd ~/dotfiles
git add .
git commit -m "Update configurations"
git push# 在新设备上
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles
./scripts/setup/dot_config.sh