Mac 上的 AI 程式助手:讓寫程式快一倍
技 iLab學校技術長進階技術・終端機・系統維修・依官方資訊整理開始前
門市常遇到一種開發者:螢幕上一堆訂閱通知,VS Code 裝了三四個 AI 外掛,結果寫程式還是卡卡的。問下去才發現,工具是裝了,但沒搞清楚自己在 Mac 上到底適合走哪一條路。
老實說,Mac 上的 AI 程式助手沒有「一個打天下」的選項。從 macOS 14(Sonoma)起,整合深度才算真的到了「天天能用」的程度,但能用不代表每個工具都適合你。下面把實際會用到的三條路線講清楚,你照自己的語言和工作環境對號入座就好。
先搞懂這三條路差在哪
| 工具 | 整合環境 | 費用 | 離線? |
|---|---|---|---|
| Xcode Predictive Code Completion | Xcode 15.2+ | 免費 | 是(模型內建) |
| GitHub Copilot | VS Code、Xcode | 訂閱制(有免費額度) | 否 |
| Continue.dev + Ollama | VS Code、JetBrains | 免費 | 是 |
簡單講:如果你只寫 Swift、Objective-C,Xcode 內建那個就夠,別多花錢;混合語言(Python、TypeScript 那一堆)的人,Copilot 最省心;公司有資安規定、程式碼不能出本機的,就走 Continue.dev 接本地模型。
一個容易踩的點:Xcode 的 Predictive Code Completion 要 macOS 14(Sonoma)加上 Xcode 15.2 才穩定啟用,而且目前只吃 Swift 和 Objective-C。主力是 Python 或 TypeScript 的話,這條對你沒用,直接看後面兩條。
Xcode 內建的補全,先把它打開
這是最省事的,不用帳號、不用訂閱,Apple 把模型直接塞進 Xcode 裡了。寫 Apple 平台的人,第一件事就是確認它有開。
到 Xcode → 設定 → Text Editing → Editing,把「Enable Predictive Code Completion」勾起來就行。
懶得點選單的話,終端機一行就能確認狀態:
defaults read com.apple.dt.Xcode DVTTextShowCodeCompletion
回傳 1 就是開了。沒開、想直接寫進去:
defaults write com.apple.dt.Xcode DVTTextShowCodeCompletion -bool true
幾個用起來很有感的小操作:補全跳出來的時候,Tab 是整行收下;但很多時候它猜的後半段你不要,這時按 Option + → 只接受下一個 token,一個詞一個詞吃,不會被整段塞滿。不想要當前建議就 Escape,不影響之後再觸發。還有一個很多人沒發現的:在函式上面打 ///,它會自動把 Parameters、Returns 的文件區塊補出來,寫註解省一大半時間。
這個模型是裝在 /Library/Developer/Xcode/ 底下、由 Xcode 自己管的。如果你 Mac 磁碟很緊,可以到「設定 → General → Platforms」看一下下載了哪些模擬器和模型,把長期沒用的舊平台清掉。
GitHub Copilot:混合語言的人就是它
如果你一天裡 Swift、Python、TypeScript、Go 換來換去,Copilot 是最不用想的選擇,支援 20 多種語言,VS Code 跟 Xcode 都能掛。要訂閱,但有免費額度可以先試。
VS Code 這邊最直接。Command + Shift + X 開 Extensions,搜「GitHub Copilot」裝起來,順手把「GitHub Copilot Chat」也裝了,後面 Chat 功能會用到。裝完左下角點帳號圖示 → Sign in with GitHub 授權完就好。授權後記得瞄一眼右下角狀態列的 Copilot 圖示,要是 active 不是 paused,不然你會以為它壞了,其實只是被暫停。
Xcode 這邊就比較囉嗦了。Apple 的沙盒不讓第三方直接掛 IDE 擴充,所以 Copilot for Xcode 是一個獨立 App:
brew install --cask github-copilot-for-xcode
裝完還有三步:
- 開「GitHub Copilot for Xcode」App,登入 GitHub 授權。
- 到 系統設定 → 隱私權與安全性 → 輔助使用,把「GitHub Copilot for Xcode」加進去。
- 回 Xcode → Editor 選單,勾「Enable Copilot」。
第二步那個輔助使用權限是門市最常卡住客人的地方。Copilot for Xcode 是靠 macOS 的 Accessibility API 把補全注入進去的,所以非給不可。問題是公司配發、有 MDM 控管的 Mac,這個權限常常被 IT 鎖死,你怎麼點都加不進去。
快捷鍵兩邊大致一樣,記一下這張對照表就夠用:
| 動作 | VS Code | Copilot for Xcode |
|---|---|---|
| 接受整行補全 | Tab | Tab |
| 拒絕補全 | Escape | Escape |
| 下一則建議 | Option + ] | Option + ] |
| 開啟 Copilot Chat | Control + Command + I | 側邊欄圖示 |
| 指定範圍重構 | 選取後 Command + I | 同左 |
Copilot Chat 真正天天會用到的就那幾個 slash command,其他大多是噱頭:
/explain → 解釋選取的程式碼
/fix → 修正語法或邏輯問題
/tests → 自動生成 XCTest / Jest 測試案例
/doc → 生成函式文件
Continue.dev + Ollama:程式碼不出本機的人看這裡
不想把程式碼傳雲端,或者公司明文規定不能外傳,那 Copilot 這條路就斷了。這時候 Continue.dev 搭 Ollama 跑本地模型,補全跟 Chat 全程都在你自己的 Mac 上,一個位元都不出本機。
先裝 Ollama:
brew install ollama
抓一個適合寫程式的模型,這裡以 deepseek-coder-v2 為例,大概 9GB:
ollama pull deepseek-coder-v2
抓完隨手測一下它活著沒:
ollama run deepseek-coder-v2 "寫一個 Swift function,傳入陣列並回傳去重後結果"
這邊 Apple Silicon 的優勢就出來了。M1、M2、M3、M4 的 Mac,Ollama 會自動走 Metal 加速,推論速度比舊的 Intel Mac 快一截。
不過模型選哪個,跟你的記憶體直接掛鉤,這是門市最常被問的。deepseek-coder-v2 效果是好,但要 32GB RAM 才跑得順。如果你是 16GB 的 MacBook Pro,硬上那顆只會卡到想砸電腦。
模型備好了,接 Continue.dev:
- VS Code 裝「Continue」擴充套件。
- 開 Continue 側邊欄,點右下角齒輪 → 開啟
config.json。 - 在
models陣列裡加上:
{
"title": "DeepSeek Coder V2 (本地)",
"provider": "ollama",
"model": "deepseek-coder-v2",
"apiBase": "http://localhost:11434"
}
- 存檔,側邊欄頂部下拉選單切到剛加的模型就好。
補全快捷鍵跟 Copilot 一樣是 Tab 接受,而且切換模型不用重啟 VS Code,想比較哪顆模型順手可以當場換。
兩個實際會碰到的狀況
寫 Apple 平台的人常問:Xcode 內建的 Predictive 跟 Copilot for Xcode 能不能一起開?技術上可以,但我們不建議。兩個同時啟用,補全視窗會疊在一起互相搶,你按 Tab 根本不知道收了哪個建議。比較清楚的做法是分開:Swift、SwiftUI 專案用原生 Predictive,Python、TypeScript 的腳本才開 Copilot,井水不犯河水。
另一個是公司機連不了 GitHub 但又想要 AI 補全。前面講的 Continue.dev + Ollama 全本地方案就是答案,完全不碰外網。只要防火牆放行 localhost:11434(Ollama 預設 port),Continue.dev 就通了。如果是要管好幾台機器、希望模型版本統一,可以在內網架一台 Ollama server,把 apiBase 改指到內網 IP 就行。
說到底,工具是一回事,跑得動才是另一回事。本地模型順不順,幾乎都卡在記憶體;Apple Silicon 加上夠用的 RAM,本地補全才會真的像「快一倍」而不是「卡一倍」。要是你正在猶豫該配多少記憶體、或哪台 Mac 撐得起本地模型,可以用 選機小幫手 抓個方向,或直接來 iLab 門市,現場開機跑給你看再決定。