
最近几个星期我把在Mac上使用GPT编程的日常流程彻底改了一遍。以前是写好需求、打开编辑器、手动查文档现在则是先打开网页版ChatGPT聊一轮方案再把任务交给终端里的Codex去落地执行。这个组合让我的编程产出明显变多尤其是写脚本、改Bug、补测试这类活儿基本可以交给GPT打好草稿我再做检查收尾。这篇东西我不打算讲什么高深的理论就把整个完整过程写出来从环境准备到工具选型从提示词写法到实际案例再到我踩过的各种坑。适合的人很明确——想在Mac上把AI真正用起来搞开发的程序员以及正在用GPT学编程、但不知道怎么组织工作流的新手。1. 先把Mac的开发环境理顺1.1 为什么第一步是环境而不是GPT你可能觉得用GPT编程嘛下载个客户端打开就能聊。但实际干起活来第一步卡住的往往不是GPT而是Mac上的开发环境。那些所谓“GPT写代码”的场景十有八九要落在本地项目里而本地项目要能跑起来就绕不开软件包管理工具。Mac上最常用的就是Homebrew网上搜索“mac安装homebrew失败”“mac brew 安装”“mac软件包管理工具”的人一批接一批说明大家都在这栽过跟头。Homebrew本质上是命令行下的软件分发中心你装Python、装Node.js、装Git、装一堆命令行小工具基本都靠它。如果这个环节没理顺后面让GPT生成的代码就跑不起来。你让GPT帮你写了一个脚本结果本地连Python环境都没有那体验就很糟糕。所以我想认真地说想要在Mac上顺畅地用GPT编程第一步不是去研究提示词而是先把Homebrew装好、把终端环境整理干净。这个基础打得越牢后面越省心。1.2 Homebrew安装失败的典型场景与解法我见过太多人在Homebrew上反复折腾自己也踩过不少坑归纳起来主要是下面几类情况。官方安装脚本下载太慢卡在Downloading阶段半天没反应。中途报错提示“Failed during git fetch”之类的信息。权限问题/opt/homebrew目录创建不了或者装着装着说没有写入权限。我的处理思路是这样别盲目重试先看报错卡在哪个环节。如果只是下载慢直接把官方脚本地址换成镜像地址安装过程基本就能顺利跑完。装完之后执行brew --version确认版本号能看到版本就说明装好了。如果遇到权限问题常规修法是执行sudo chown -R $(whoami) /opt/homebrew把目录所有权还给当前用户。这个命令我在新机器上经常用能解决一大半目录权限报错。看到这里可能有人要问网上有些教程让你直接删掉/opt/homebrew重装要不要照做我的建议是先执行brew doctor看看有没有系统性的警告把警告一条条解决掉。重装是最后手段因为会丢掉本地已安装的包列表重新装回来非常花时间。1.3 顺手把终端环境收拾好用GPT编程其实是在终端和编辑器之间来回切换终端本身用得顺手一点整个体验会完全不同。我建议装完Homebrew之后立刻把终端美化一下比如配置zsh的自动补全和提示插件。我自己的习惯是给.zshrc里加几行配置让终端显示当前目录和Git分支这样配合GPT改代码时一眼就能确认自己在哪个项目里。如果你做Java开发Maven也要配一下。方法和配置Homebrew类似在.zshrc里设置JAVA_HOME和MAVEN_HOME然后source一下。关于环境变量我有个经验不要把一堆变量全堆在.zshrc里错了很难排查。我平时建一个独立的env文件在.zshrc里用source引入这样哪个环节出问题一眼就能定位到。2. 工具选型在Mac上调用GPT编程到底用哪个2.1 三个入口的角色分工Mac上要调用GPT辅助编程常见的入口有三个网页版ChatGPT、桌面客户端、以及终端里的Codex CLI。这三个我都在用但分工完全不同。网页版ChatGPT适合聊思路、查概念、让GPT解释一段陌生代码。优点是有聊天上下文可以反复追问缺点是来回复制代码很麻烦高峰期还容易碰到拥挤。桌面客户端体验比网页版更流畅少了一层浏览器功能上基本一致。适合长时间对话。Codex CLI最适合真正“写代码”的入口。它能直接读取当前目录的文件把改动写进文件里还能执行命令比如帮你跑一遍测试。相当于把GPT从“聊天窗口里的笔记本”变成“敢直接干活的实习生”。2.2 Codex在Mac上的实操安装Codex是OpenAI官方的终端工具装起来不算复杂但有几个细节值得注意。第一步确认Node环境。在终端执行node -v没有的话用Homebrew装一个brew install node即可。第二步用npm全局安装Codex。我装的时候执行的是npm install -g openai/codex。第一次装的时候在权限上报错后来换了nvm来管理Node全局路径就正常了。如果你已经用nvm管理Node版本记得安装Codex之后确认一下全局bin目录在PATH里。第三步配置密钥。在~/.zshrc里加上一句export OPENAI_API_KEY你的密钥然后source ~/.zshrc再执行codex --version验证安装结果。这里必须提醒一句密钥千万别直接写到博文里、截图上也尽量别提交到Git仓库。密钥泄露的后果很麻烦。另外Codex的安装命令和配置方式会随官方文档更新动手之前先看一眼官方README这是正经操作别嫌麻烦。2.3 把网页版和CLI配合起来我的日常用法是复杂一点的需求先在网页版里把方案聊清楚让GPT给出整体思路和文件结构。然后在终端里打开项目目录用Codex按这个方案落地比如“帮我把这个模块的单测补上”“把这里的硬编码改成配置文件读取”。Codex干活的时候我会盯着它改动的内容一行行看diff。项目如果没有用Git我强烈建议先git init再交给Codex改出问题还能回退。我吃过亏有一次让Codex改了配置文件没检查就跑了结果把线上参数弄错了折腾了半天才恢复。从那之后凡是要让GPT动代码的场景我一律先在Git分支里干活。3. 实操从0到1让GPT把代码写出来3.1 提示词的基本框架网上搜索“ai编程提示词”的朋友很多说明大家都关心这个问题。我总结了一套提示词框架适用范围很广总共四要素目标、上下文、约束、输出形式。目标一句话说清要做什么。比如“写一个Python脚本统计日志级别”。上下文贴出相关文件内容、目录结构、当前报错信息。上下文越具体GPT的答案越靠谱。约束明确语言版本、是否依赖第三方库、代码风格。省掉这一步GPT可能给你生成一个你没装过的框架跑都跑不起来。输出形式要完整脚本、代码片段还是把改动说明列出来。这个直接影响你拿到手之后怎么用。举个最简单的例子。网上常有人搜“python编程求长方体体积”这种题目很适合新手练习。按我的框架来写就是“写一个Python函数输入长宽高三个float参数返回长方体体积。不要用第三方库函数名叫volume加上中文注释并给两个测试用例。”这样一个提示词GPT生成的代码基本能一次通过。3.2 一个真实的实操案例日志文件统计我拿身边的实际场景说。之前有个项目每天产生大量日志文件我需要快速统计出一天内各错误级别的条数。我没有直接让GPT写一个复杂脚本而是分了三轮。第一轮我给它一段真实日志内容提示词是“写一个Python脚本读取指定路径下的日志文件统计INFO、WARNING、ERROR三种级别的行数输出到终端路径作为命令行参数传入。”它很快就生成了一个可运行的脚本我保存下来在日志文件上跑了一遍结果正常。第二轮我在脚本跑通之后追加要求“如果日志文件不存在不要抛异常打印一行提示并正常退出。”它自动帮我加了个存在性判断。第三轮我让它把统计逻辑抽成一个函数再为一个函数写单元测试。我用三个样例验证了边界情况比如空文件、没有ERROR记录的情况。整个过程大概二十分钟代码质量比我手动写快很多。关键是每一轮我都在检查它生成的代码没有盲抄。最后我还会贴一句“帮我检查这段脚本有没有边界情况漏掉”往往能收获一些有价值的补充。这种做法相当于免费请了一个编程伙伴但前提是你自己要看懂每一行代码。3.3 让GPT从“能跑”到“靠谱”的四个技巧这些技巧是我用了很久之后才总结出来的算是我个人最想分享的内容。一是小步拆解。一次只让GPT完成一个明确的小任务别让它一口气建一个完整项目。拆出来的结果更可控出问题也好定位。你让它“帮我写一个博客系统”它给你几百个文件你根本不知道从哪里开始检查。二是让GPT先解释再改动。当你发现它改坏了别直接让它重写先问它“你刚才那步改动的逻辑是什么”。它通常会在解释的过程中意识到自己的问题然后主动提出修正方案这比反复试错高效。三是把报错原文喂回去。GPT最擅长处理你贴给它的具体报错信息而不是笼统的“运行不了”四个字。把终端里的报错堆栈完整贴过去它的命中率会高很多。四是定期让它做代码评审。每隔几天把最近写的一两段代码贴给它让它找潜在问题。我发现它能指出来一些我自己忽略的边界情况效果约等于免费请了个结对评审。4. 高频问题排查MacGPT编程路上会踩的坑4.1 服务端的老毛病重新连接和高峰期“gpt一直显示重新连接”“gpt今天一直报高峰”这两个热词几乎每个用GPT的人都遇过。我的处理经验分几步。第一步先排除浏览器的因素。换一个浏览器试一试清理一下站点缓存很多“一直转圈”其实只是浏览器的问题。第二步错峰使用。如果你发现某个时段网页端一直打不开就把需要和GPT对话的活儿集中放到非高峰时段比如早上或者深夜。这种方式最省心不用和拥挤过不去。第三步网页端拥挤时试试终端里的Codex。它走的是另一套服务入口网页端繁忙时反而还算正常这也是我建议在终端里跑Codex的原因之一。另外GPT Plus用户会看到类似“每5小时限制”的提示。这说的是在5小时滚动窗口内对消息数量有一个额度不是只能用一次。真要高效利用这个机制可以把任务切成小块攒到一段连续的时间集中处理既不浪费额度也便于保持思路连贯。4.2 Homebrew的其他坑更新慢、依赖冲突装上Homebrew之后也不是一劳永逸。我遇到过几次brew update特别慢甚至长时间卡住的情况。这种问题多半还是仓库地址的问题处理方式也简单把仓库地址换成镜像地址就可以。还有一次我在装一个新工具时提示某个旧包依赖冲突。一开始我完全不知道它在说什么后来按提示执行了brew unlink然后再执行brew link问题就解决了。平时遇到莫名其妙的报错可以先跑brew doctor它会列出待处理项。我的原则是不轻易重装Homebrew这是最重的操作让它作为最后手段存在。4.3 Mac日常使用的几个小毛病在Mac上编程有些系统层面的小毛病也值得顺手解决不然会反复影响心情。鼠标滚轮方向不习惯这是很多人刚换Mac时最大的怨念。明明在滚动内容页面却往反方向跑。Mac上有专门的鼠标滚动修复小工具装上之后勾掉“自然滚动”选项手感就正常了。右键菜单不丰富的问题也可以解决。系统设置里可以开启“按住Control键点击”来模拟右键或者直接换一个支持双键的鼠标办公体验会好很多。解压文件如果对系统自带工具的慢速感到不耐烦装一个第三方解压工具能省不少事。还有“mac找不到钥匙串”这个问题多出现在重装系统或迁移之后。命令行签名、ssh操作会莫名报错我的做法是在钥匙串访问里重置默认钥匙串重新填一遍密码基本上能恢复。5. 最后聊几句使用体会5.1 新手和熟手的不同用法用GPT编程这件事入门者最容易走两个极端要么完全依赖要么完全抵触。我的看法是新手应该把“让它解释代码”和“让它出题给你练”当成核心功能解题过程还是要自己来。让GPT把这个知识点的坑解释清楚再让它出几道题给你写写完让它点评这个循环对于快速建立语言感觉很有帮助。熟手的玩法则可以贪心一点把重复的体力活全部丢给它自己专注在方案设计和代码审查上。5.2 最后的兜底习惯最后分享一个我自己的小习惯。每次收工前我会把当天让GPT产生的所有代码全量读一遍再手工追加一轮“检查边界条件”的评审提示词。这个过程很值得我已经靠这个习惯拦下了好几次配置错误和越界访问的问题。AI能帮你写代码但替你兜底的永远是你自己。用的时候多留个心眼把它当成一个聪明但偶尔犯迷糊的搭档你会比那些只会复制粘贴的人走得更远。