Mac 开发效率提升指南

前言

作为一个开发者,效率是我们一直追求的目标。为什么有的人开发快、有的人慢?除了技术能力,工具链的差异往往是被忽视的关键因素

工欲善其事,必先利其器。

从大学开始我就用 macOS 学习编程(学校有计科专用的 Mac 机房),到现在工作多年,我逐渐打磨出一套高效的开发工具链。这套工具链让我每天至少比用默认配置的同事提效 10% 以上

本文分享我在 macOS 上的提效实践,包括必备软件、终端配置、别名系统等。这些技巧不仅适用于 Mac,很多理念在 Linux 和 Windows(WSL)上同样适用。

为什么选择 macOS 开发?

在开始之前,先聊聊为什么我选择 macOS 作为主力开发环境:

特性 macOS Windows
终端体验 原生 Unix,命令与 Linux 90% 兼容 需要 WSL 或第三方工具
包管理 Homebrew,一行命令解决依赖 较为分散
内存优化 相同配置表现更好 资源占用较高
续航 优秀(M 系列芯片尤其突出) 一般
开发工具链 原生支持大多数开发工具 部分工具需要额外配置

当然,工具只是工具,选择适合自己的最重要。下面进入正题。

必备效率软件

1. Alfred —— 剪切板管理神器

极力推荐。这是我使用频率最高的软件之一。

核心功能

  • 剪切板历史(最多保存 3 个月)
  • 显示复制来源(从哪个软件复制的)
  • 快速搜索历史记录

使用场景

  • 忘记了之前复制的 GitHub Token?搜索 ghp 直接找到
  • 需要反复粘贴多段内容?不用来回切换
  • 代码片段临时存储?复制后随时调用

推荐快捷键Ctrl + Command + V

┌─────────────────────────────────────┐
│  Alfred 剪切板历史                   │
├─────────────────────────────────────┤
│  🔍 搜索: ghp_                       │
├─────────────────────────────────────┤
│  📋 ghp_xxxxxxxxxxxx (GitHub)       │
│  📋 ghp_yyyyyyyyyyyy (Terminal)     │
│  📋 API Key: sk-zzzzz (Notes)       │
└─────────────────────────────────────┘

Alfred 剪切板管理界面

2. Bob —— 快捷翻译

选中文字后直接翻译,支持多种翻译引擎。

为什么选 Bob?

  • 界面简洁美观
  • 支持 OCR 截图翻译
  • 可配置多个翻译源(DeepL、Google、有道等)
  • 响应速度快

使用技巧:设置快捷键 Option + D,选中英文文档直接翻译。

Bob 翻译工具界面

3. iTerm2 —— 终端的终极形态

相比原生 Terminal,iTerm2 提供了更强大的功能:

核心优势

  • 分屏Command + D 水平分屏,Command + Shift + D 垂直分屏
  • 主题:Oh My Zsh 配合 Powerlevel10k,清晰显示 Git 分支、Python 环境等
  • 搜索Command + F 搜索终端历史输出
  • 热键窗口:设置全局快捷键,随时呼出终端

推荐配置

# 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 安装 Powerlevel10k 主题
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 在 ~/.zshrc 中设置主题
ZSH_THEME="powerlevel10k/powerlevel10k"

iTerm2 终端界面

4. Kiro CLI —— AI 驱动的终端助手

强烈推荐!这是我用了两年的 AI 开发助手,原来叫 Amazon Q CLI,今年改名为 Kiro CLI,但功能和使用体验完全一样。

核心优势

  • 智能代码生成:直接在终端中生成代码片段
  • 命令行助手:自然语言转换为复杂的 shell 命令
  • 多模型支持:可以选择不同的 AI 模型进行对话
  • 与 iTerm2 完美配合:无缝集成到终端工作流

安装和配置

# 安装 Kiro CLI
npm install -g @aws/kiro-cli

# 初始化配置
kiro-cli configure

使用场景

  • 忘记复杂的 Git 命令?直接问 Kiro
  • 需要写一个快速脚本?让 Kiro 帮你生成
  • 调试 Docker 容器?Kiro 给出最佳实践命令

Kiro CLI 官网

Kiro CLI 软件主页

权限设置
首次使用需要开启必要权限:

开启权限

启用命令提示
配置后可以获得智能的命令建议:

启用命令提示

实际使用效果

CD命令提示

Git命令提示

模型选择
可以根据不同任务选择合适的 AI 模型:

聊天写代码选模型

使用技巧

  • 设置快捷键快速呼出 Kiro
  • 结合 iTerm2 的分屏功能,一边写代码一边咨询 AI
  • 利用 Kiro 的代码生成功能快速创建模板文件

5. 超级右键 —— Finder 增强

右键菜单增强工具,支持:

  • 在当前目录打开终端
  • 新建各种类型文件
  • 快速复制文件路径

超级右键功能展示

别名系统:效率提升的核心

别名(Alias)是我提效的重头戏。把常用的长命令缩短为几个字母,积累下来节省的时间非常可观。

基础别名

# 清屏 - 强迫症必备,保持终端清爽
alias cl="clear"

# 快速进入常用目录
alias desk="cd ~/Desktop"
alias down="cd ~/Downloads"
alias proj="cd ~/Projects"

Kubernetes 别名

如果你经常操作 K8s,这套别名能让你的效率翻倍:

# 基础命令缩写
alias k="kubectl"
alias kg="kubectl get"
alias kd="kubectl describe"
alias kl="kubectl logs"

# 快速切换集群上下文
alias kdev="kubectl config use-context dev-cluster"
alias kprod="kubectl config use-context prod-cluster"
alias klocal="kubectl config use-context docker-desktop"

# 常用查询(带参数)
alias kpod='func(){ kubectl get pods -n $1 -o wide; }; func'
alias ksvc='func(){ kubectl get svc -n $1 -o wide; }; func'
alias king='func(){ kubectl get ing -n $1 -o wide; }; func'

# 日志和调试
alias klog='func(){ kubectl logs -f $1 -n $2 --tail 200; }; func'
alias kexec='func(){ kubectl exec -it $1 -n $2 -- sh; }; func'

# 复杂操作用脚本
alias kscale='~/Shell/k8s_quick_scale.sh'
alias kstop='~/Shell/k8s_quick_stop.sh'
alias kstart='~/Shell/k8s_quick_start.sh'

使用示例

# 查看 default 命名空间的 Pod
kpod default

# 查看 Pod 日志
klog my-app-pod-xxx default

# 进入 Pod 调试
kexec my-app-pod-xxx default

SSH 连接别名

每次输入 ssh -i xxx.pem user@ip 太麻烦?用别名:

# 开发服务器
alias shdev='ssh -i ~/.ssh/dev_key.pem dev@192.168.1.100'

# 生产服务器(谨慎使用)
alias shprod='ssh -i ~/.ssh/prod_key.pem admin@10.0.0.50'

# 带密码的连接(需要 sshpass)
alias shluckfox='func(){ sshpass -p "password" ssh -o StrictHostKeyChecking=no root@$1; }; func'

安全提示:生产服务器建议使用跳板机,不要直接暴露。

Git 别名

Git 操作是日常开发中最频繁的,这套别名让分支切换变得丝滑:

# 快速切换分支并更新
alias master="git checkout master && git pull"
alias dev="git checkout dev && git pull"
alias test="git checkout test && git pull"
alias sit="git checkout sit && git pull"

# 安全版本(检查是否在 Git 仓库中)
alias gmaster='if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then git checkout master && git pull; else echo "Not a git repository"; fi'

# 常用 Git 命令缩写
alias gs="git status"
alias ga="git add"
alias gc="git commit"
alias gp="git push"
alias gl="git pull"
alias glog="git log --oneline -20"
alias gdiff="git diff"

项目目录别名

在多个项目之间切换是家常便饭,用别名直达:

# 微服务项目
alias svc-user="cd ~/Projects/cloud-user"
alias svc-order="cd ~/Projects/cloud-order"
alias svc-device="cd ~/Projects/cloud-device"
alias svc-gateway="cd ~/Projects/cloud-gateway"
alias svc-common="cd ~/Projects/cloud-common"

# 前端项目
alias fe-admin="cd ~/Projects/admin-frontend"
alias fe-app="cd ~/Projects/mobile-app"

# 组合使用:进入项目 + 切换分支
alias dev-user="cd ~/Projects/cloud-user && git checkout dev && git pull"

实用工具别名

# 查询本机 IP(告别在 ifconfig 的输出中找 IP)
alias myip='ifconfig | grep "inet " | grep -v 127.0.0.1 | awk "{print \$2}"'

# 代理下载(需要本地代理)
alias pdown='func(){ 
    url=$1
    filename=$(basename "$url")
    curl --proxy http://localhost:7890 -o "$(pwd)/$filename" "$url"
}; func'

# Docker 快捷命令
alias dps="docker ps"
alias dpa="docker ps -a"
alias dlog="docker logs -f"
alias dexec='func(){ docker exec -it $1 sh; }; func'

# 快速编辑配置
alias zshrc="code ~/.zshrc"
alias hosts="sudo code /etc/hosts"

配置文件管理

~/.zshrc 组织建议

# ============ 基础配置 ============
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git docker kubectl zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh



# ============ 别名 - 基础 ============
alias cl="clear"
alias desk="cd ~/Desktop"
# ... 更多别名

# ============ 别名 - K8s ============
alias k="kubectl"
# ... K8s 别名

# ============ 别名 - Git ============
alias gs="git status"
# ... Git 别名

# ============ 别名 - 项目 ============
alias svc-user="cd ~/Projects/cloud-user"
# ... 项目别名

别名文件分离

当别名太多时,可以分离到单独文件:

# ~/.zshrc 末尾添加
source ~/.aliases_k8s
source ~/.aliases_git
source ~/.aliases_projects

效率提升的本质

回顾这些技巧,效率提升的本质是:

  1. 减少重复输入:别名把长命令缩短为几个字母
  2. 减少记忆负担:常用命令不用每次回忆完整写法,Kiro CLI 更是让自然语言直接转换为命令
  3. 减少切换成本:快捷键、目录别名减少鼠标操作
  4. 减少等待时间:代理下载、并行操作
  5. AI 辅助决策:Kiro CLI 提供智能建议,减少查文档的时间

量变引起质变:单个别名节省的时间微乎其微,但当你有 50+ 个别名,每天使用上百次时,累积效果非常显著。加上 Kiro CLI 的 AI 助手功能,效率提升更加明显。

进阶技巧

1. 自动补全

# 安装 zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 在 ~/.zshrc 中启用
plugins=(... zsh-autosuggestions)

输入命令时会自动显示历史命令建议,按 键补全。

2. 模糊搜索 fzf

# 安装
brew install fzf

# 启用快捷键
$(brew --prefix)/opt/fzf/install

Ctrl + R 模糊搜索历史命令,比默认的反向搜索好用 100 倍。

3. 快速目录跳转 z

# 安装
brew install z

# 在 ~/.zshrc 中添加
source /usr/local/etc/profile.d/z.sh

根据访问频率智能跳转目录:

z proj     # 跳转到最常访问的包含 "proj" 的目录
z cloud    # 跳转到 cloud-xxx 项目目录

总结

工具链的打磨是一个持续的过程,不必一次配置到位。我的建议是:

  1. 从痛点出发:哪个操作让你觉得烦?先优化它
  2. 逐步积累:每周添加 1-2 个别名,逐渐形成自己的工具库
  3. 定期回顾:清理不再使用的别名,保持配置简洁
  4. 备份配置:把 dotfiles 放到 Git 仓库,换电脑时一键恢复
  5. 拥抱 AI:像 Kiro CLI 这样的 AI 工具正在改变开发方式,早用早受益

记住:最好的工具是你用得顺手的工具。不必追求最新最炫,适合自己的才是最好的。

特别推荐 Kiro CLI + iTerm2 的组合,这套工具链我已经用了两年,从 Amazon Q CLI 到现在的 Kiro CLI,体验一直很棒。AI 助手让很多原本需要查文档或搜索的问题都能在终端中直接解决。

希望这些技巧能帮助你提升开发效率。如果你有更好的提效技巧,欢迎交流!


相关资源

更新时间:2025年12月26日