mirror of
https://github.com/d0zingcat/dotfiles.git
synced 2026-05-13 15:09:34 +00:00
d97b0d8fb873ee6f12281c1f7f15e6a603e86b7f
Dotfiles
个人 macOS 开发环境配置 - 支持一键迁移到新机器
🚀 快速开始
新机器设置 (推荐)
# 1. 克隆仓库
git clone <your-repo-url> ~/.dotfiles
cd ~/.dotfiles
# 2. 一键完整恢复
./setup.sh full-recover
# 3. 配置个人信息
git config --file ~/.gitconfig user.name "Your Name"
git config --file ~/.gitconfig user.email "your@email.com"
ssh-keygen -t ed25519 -C "your@email.com"
# 4. 安装 Homebrew 包
brew bundle install
现有机器设置
# 安装 dotfiles 软链接
./setup.sh install
# 检查当前状态
./setup.sh check
📋 命令说明
| 命令 | 说明 |
|---|---|
./setup.sh init |
初始化新系统 (Homebrew, Xcode, antigen) |
./setup.sh install |
安装 dotfiles 软链接 |
./setup.sh backup |
完整备份 (Brewfile + Git 配置+SSH 公钥 +VSCode 扩展) |
./setup.sh sync |
从 git 仓库同步最新配置 |
./setup.sh full-recover |
新机器完整恢复 (init + install + sync) |
./setup.sh check |
检查当前安装状态 |
./setup.sh help |
显示帮助信息 |
📁 目录结构
~/.dotfiles/
├── .gitignore # Git 忽略规则 (敏感数据)
├── .tmux.conf # Tmux 配置
├── .zshrc # Zsh 配置 (alias + 函数)
├── Brewfile # Homebrew 包列表
├── CHECKLIST.md # 迁移检查清单
├── setup.sh # 安装脚本
├── git/
│ ├── .gitignore # Git 全局忽略
│ └── config # Git 配置 (模板化)
├── nvim/ # Neovim 配置
│ ├── init.lua
│ └── lua/
├── wezterm/ # WezTerm 终端配置
├── alacritty/ # Alacritty 终端配置
├── ghostty/ # Ghostty 终端配置
├── starship.toml # Starship 提示符
└── tmux/ # Tmux 插件 (TPM)
🔧 核心组件
Shell (Zsh)
- 框架: antigen + oh-my-zsh
- 插件:
- zsh-autosuggestions
- zsh-syntax-highlighting
- fzf-tab
- vi-mode
- 特性:
- 60+ alias 和函数
- Kubernetes 工具集成
- Git 工作流优化
- 工作环境标记
编辑器 (Neovim)
- 插件管理: lazy.nvim
- 语言支持: Go, Python, Rust, Lua
- 核心插件:
- LSP (lspconfig)
- 自动补全 (nvim-cmp)
- Treesitter (语法高亮)
- Telescope (模糊搜索)
- Snacks.nvim (UI 增强)
- 主题: Tokyo Night
终端
- WezTerm: GPU 加速终端 (主要使用)
- Alacritty: 备用终端
- Ghostty: 现代化终端
终端复用 (Tmux)
- 前缀键:
Ctrl-a - 插件: TPM (Tmux Plugin Manager)
- 主题: Dracula 配色
- Vi 模式: 复制/粘贴
Kubernetes
- kubectl + krew
- k9s (TUI 管理)
- kubectx / kubens
- helm + helmfile
- ArgoCD CLI
📦 Homebrew 包
CLI 工具
bat # cat 替代
ripgrep # grep 替代
lsd # ls 替代
difftastic # diff 工具
fzf # 模糊搜索
开发语言
go # Go 语言
rustup # Rust
node # Node.js
lua # Lua
pnpm # pnpm
bun # Bun
uv # Python uv
数据库
mysql # MySQL
postgresql # PostgreSQL
redis # Redis
Mac 应用
1password # 密码管理
ghostty # 终端
cursor # 编辑器
obsidian # 笔记
raycast # 启动器
figma # 设计
⚙️ 配置说明
Git 配置模板
git/config 是仓库内模板;./setup.sh install 会将它复制到 ~/.gitconfig。首次使用后请在本机副本中填写真实信息:
git config --file ~/.gitconfig user.name "Your Name"
git config --file ~/.gitconfig user.email "your@email.com"
git config --file ~/.gitconfig user.signingkey "your-ssh-key"
工作环境函数
.zshrc 中包含工作环境相关的函数,已用 # ==== WORK: 标记:
klogs- Kubernetes 日志查看bitnami_seal- Kubernetes 密钥加密rsync_work- 远程同步到工作服务器replace_remote- Git remote 切换git_config_work/git_config_play- 多环境 Git 配置
🔐 敏感数据
以下路径已被 .gitignore 排除,不会被提交:
.ssh/- SSH 密钥.1password/- 1Password 配置.kube/- Kubernetes 配置*.env- 环境变量credentials.json,secrets.txt- 凭据
需要在新机器上重新配置。
🔄 迁移流程
从旧机器导出
cd ~/.dotfiles
./setup.sh backup
git add .
git commit -m "Update dotfiles before migration"
git push
在新机器恢复
git clone <your-repo-url> ~/.dotfiles
cd ~/.dotfiles
./setup.sh full-recover
详细步骤请参考 CHECKLIST.md
🐛 故障排查
zsh 配置不生效
source ~/.zshrc
# 或重启终端
Neovim 插件报错
nvim --headless "+Lazy! sync" +qa
Homebrew 权限问题
sudo chown -R $(whoami) $(brew --prefix)
Git 签名失败
# 检查 1Password SSH agent
ls -la ~/.1password/agent.sock
op ssh list
📝 自定义
添加新包
编辑 Brewfile,然后运行:
brew bundle install
添加新 alias
编辑 ~/.dotfiles/.zshrc,在 alias 区域添加:
alias myalias='command'
添加 Neovim 插件
编辑 ~/.dotfiles/nvim/lua/plugins/ 下的文件。
📄 License
MIT
🔗 相关链接
💾 备份功能
./setup.sh backup 会备份以下配置:
备份内容
| 项目 | 说明 | 是否可提交 |
|---|---|---|
| Brewfile | Homebrew 包列表 | ✅ |
| SSH 公钥 | ~/.ssh/*.pub |
⚠️ 不提交 |
| SSH 配置备份 | ~/.ssh/config |
⚠️ 不提交 |
| Git 配置摘要 | 用户信息(脱敏) | ⚠️ 不提交 |
| 1Password 配置 | SSH Agent 设置 | ✅ |
| VSCode 扩展 | 已安装扩展列表 | ✅ |
| 备份报告 | 完整备份状态 | ✅ |
使用方式
# 运行备份
./setup.sh backup
# 查看备份报告
cat .backup_report_*.md
# 提交安全文件
git add Brewfile .1password_config.txt .vscode_extensions.txt
git commit -m 'backup: update dotfiles'
安全提醒
- ⚠️ 不要提交:
.git_config_summary.txt,ssh_backup_*/ - ✅ 可以提交:
Brewfile,.1password_config.txt,.vscode_extensions.txt ./setup.sh install/./setup.sh full-recover会在~/.ssh/config不存在时,用ssh/example初始化一份本地配置./setup.sh install也会在检测到 1Password socket 后,自动创建~/.1password/agent.sock
📚 相关文档
| 文档 | 用途 |
|---|---|
| BACKUP_INSTRUCTIONS.md | 详细备份指南(离职前必读) |
| MIGRATION_GUIDE.md | 个人备份说明 |
| CHECKLIST.md | 配置检查清单 |
| QUICKSTART.md | 快速开始指南 |
Description
Languages
Lua
74.2%
Shell
22.2%
Ruby
3.6%