17 · 终端使用
Trae 内置终端不是普通的终端——它”看”得见你在敲什么、“理”解得你在做什么,甚至能在你出错时主动伸手拉一把。
01 为什么终端需要 AI 感知
在传统 IDE 中,终端和编辑器是两回事。你在终端里敲命令,编辑器不知道你在做什么;你在编辑器里改代码,终端不知道你改了哪里。两边各管各的。
Trae 的终端不一样。它的核心设计理念是:
终端不再是 IDE 的附件,而是 AI 理解你工作流的一个传感器。
AI 能看到:
- 你当前在哪个目录
- 你刚刚执行了什么命令
- 命令的输出结果(报错、警告、成功)
- 你打开了哪些 session(多个终端标签)
这些信息不再是”隔离的”——它们自动汇入 AI 的上下文,变成 Chat、Builder、SOLO 模式中 AI 理解你意图的原材料。
心智模型:传统终端的输出是给你看的;Trae 终端输出同时给 AI 看。AI 像坐在你旁边的同事,一直在瞟你的终端屏幕——不是偷窥,是帮你盯着。
02 内置终端基础
打开终端
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 打开/关闭终端面板 | Ctrl+ “(反引号) | 切换终端显示 |
| 新建终端标签 | Cmd+T | 在终端面板中新建 tab |
| 切换终端标签 | Ctrl+Tab | 在多个终端标签间切换 |
| 关闭当前标签 | Cmd+W | 关闭当前终端 |
| 拆分终端(Split) | Cmd+\ | 左右分屏,同时看两个终端 |
终端支持
- Shell 类型:继承系统默认 shell(zsh / bash / fish / PowerShell / cmd)
- 多标签:每个标签独立工作目录、独立会话
- 富文本输出:颜色、ANSI 转义序列完整支持
- 链接可点击:文件路径、URL 自动识别为可点击链接
- 集成编辑器:
Cmd+click文件路径可直接打开到编辑器
03 AI 感知的终端:它”看到”你在做什么
AI 能看到什么
Trae 的 AI 模型持续观察终端的状态——不是记录屏幕内容,而是提取结构化的信息:
AI 对终端的感知清单
├── 当前工作目录(pwd)
├── 已执行的命令历史(按顺序)
├── 每条命令的退出码(0=成功,非0=出错)
├── 输出中的重要信号
│ ├── ERROR / error / Error
│ ├── Traceback (Python 异常)
│ ├── failed / FAILED
│ ├── warning / Warning
│ └── 编译/构建错误行
└── 活跃的进程(如 dev server、watch 模式)这有什么用
场景一:你在终端里 npm run dev 报错,AI 已经看到了。
你:(什么也没说,切到 Chat)
Chat AI:我检测到你在终端中运行 npm run dev 时遇到了模块安装错误
`Module not found: can't resolve 'react-dom'`。
需要我帮你安装 react-dom 吗?场景二:你在终端里先 cd backend 再 npm start,然后问 AI”帮我在这个项目里加一个路由”——AI 知道你当前在 backend 目录下,知道这是一个 Node.js 后端项目,不会把前端路由代码写进去。
AI 感知 ≠ 屏幕录制
需要强调的是,Trae 不是在做”屏幕录制”或”按键记录”。AI 感知的是终端的结构化状态——目录、命令、退出码、关键信号——而不是你打了每个字符的过程。它关心的是你最后做了什么、结果怎样,不是你打字的速度和节奏。
04 AI 替你执行命令
除了”看”,Trae 的 AI 还能直接替你执行命令。这一点在 SOLO 模式和 Builder 模式中体现得最明显。
交互方式
| 方式 | 操作 | 效果 |
|---|---|---|
| 自然语言描述 | ”帮我安装 tailwindcss” | AI 分析 → 执行 npm install -D tailwindcss |
| 让 AI 补全命令 | 在终端输入 npm ru → 触发 AI 补全 | 建议 npm run dev / npm run build |
| AI 主动执行 | SOLO 模式下自动跑测试 | npm test 在后台自动执行 |
| 命令审核 | AI 准备执行命令前弹出确认 | 你确认后再执行 |
安全机制
AI 执行命令不是”无脑跑”。它遵守一套优先级规则:
┌─ AI 执行命令的安全层级 ──────────────┐
│ │
│ 只读操作(读取、查看) ← 直接执行 │
│ ├── git status / diff / log │
│ ├── ls / cat / head │
│ ├── pwd / which / type │
│ └── npm ls / pip list │
│ │
│ 一般操作(安装、构建) ← 确认后执行│
│ ├── npm install / yarn add │
│ ├── npm run build / tsc │
│ └── git add / git commit │
│ │
│ 危险操作(删除、覆盖) ← 必须你手动│
│ ├── git push / git rebase --force │
│ ├── rm -rf / mv (覆盖) │
│ └── 生产环境部署命令 │
│ │
└──────────────────────────────────────┘实际例子
你:帮我把这个项目跑起来
AI:先看看项目结构...
→ package.json 中有 start 脚本
→ 运行 npm install(已安装,跳过)
→ 运行 npm run dev
┌─────────────────────────────────┐
│ ⚠ AI 将执行: npm run dev │
│ [确认执行] [修改命令] [取消] │
└─────────────────────────────────┘
你点确认 → 终端自动运行 npm run dev → dev server 启动 → 右侧 Webview 预览05 错误检测与自动修复建议
这是 Trae 终端最受欢迎的功能之一——AI 不只看你出错了,它还会告诉你错在哪里、怎么修。
工作流程
你在终端执行命令
↓
命令报错(退出码非 0)
↓
AI 实时捕获输出
↓
AI 分析错误类型
├── 语法错误 → 指出具体行号
├── 依赖缺失 → 建议安装命令
├── 配置错误 → 指出配置文件
├── 类型错误 → 建议修复类型
└── 运行时错误 → 分析调用栈
↓
终端内显示修复建议
"检测到错误,需要我帮你修复吗?"
↓
确认 → AI 自动执行修复典型场景
场景:Python 导入错误
$ python app.py
Traceback (most recent call last):
File "app.py", line 3, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
────────────────────────────────────────────
🔍 AI 检测到错误:缺少 requests 模块
建议修复:pip install requests
[一键安装] [查看详情]
────────────────────────────────────────────点「一键安装」→ 终端自动执行 pip install requests。
场景:TypeScript 类型不匹配
$ npx tsc
src/user.ts:42:3 - error TS2322: Type 'string | undefined' is not assignable to type 'string'.
────────────────────────────────────────────
🔍 AI 检测到错误:类型 'string | undefined' 不能赋值给类型 'string'
位置:src/user.ts:42
建议:使用可选链或默认值处理 undefined
[显示修复方案] [打开文件到指定行]
────────────────────────────────────────────错误修复的边界
AI 对以下类型的错误修复准确率较高:
| 错误类型 | 修复准确率 | AI 能做到 |
|---|---|---|
| 缺少依赖 | 极高 | 自动安装正确版本 |
| 语法错误 | 高 | 定位并修复 |
| 类型错误 | 高 | 补类型标注或调整类型 |
| 配置错误(常见工具) | 高 | 修复 tsconfig / webpack 等 |
| 运行时异常 | 中 | 分析堆栈、建议修复方向 |
| 业务逻辑错误 | 低 | 需要人来判断意图 |
⚠️ 重要:AI 的修复建议是”参考”不是”指令”。特别是涉及业务逻辑的错误——AI 可能把”密码验证失败”当成代码 bug 来修,而实际上是你输错了密码。每次自动修复前,看清 AI 的分析再做决定。
06 终端输出自动进入上下文
这是终端和 Trae 其他模式之间最深的集成点。
当你切换到 Chat
你在终端报了错,然后切到 Chat 问”这个怎么回事”——Chat AI 已经知道了你的终端状态。你不必手动复制粘贴错误信息。
你:报错了,帮我看看
(你没有粘贴任何终端输出)
AI:(已在上下文中获取到终端最近输出)
我注意到你在运行 `npm run build` 时遇到了 webpack 打包错误:
- 错误文件:src/components/Header.tsx:24
- 错误类型:未使用的变量 'unusedVar'
- 解决方案:删除未使用的变量或添加下划线前缀当你使用 SOLO Builder
Builder 在创建项目时,会在终端中自动跑一系列命令。每一步的输出都实时流回 AI:
Builder 创建项目
↓
AI 执行: npx create-react-app my-app --template typescript
↓
终端输出实时回流 → AI 读取到 "Success! Created my-app"
↓
AI 继续下一步: cd my-app && npm install @tanstack/react-query
↓
终端输出回流 → AI 检查退出码 → 0(成功)
↓
继续下一步...这意味着 Builder 不需要”猜”命令有没有成功——它看到成功的结果就继续,看到报错就自动调整方法重试。
数据流全景
终端执行命令
│
▼
┌─────────────┐
│ 终端输出流 │──→ 你看到(实时显示)
└──────┬──────┘
│
▼
┌─────────────┐
│ AI 上下文 │──→ AI 理解并响应
│ 缓存(最近N条│
│ 命令+输出) │
└─────────────┘
│
▼
┌─────────────┐
│ Chat/Builder│──→ 你不用复制粘贴
│ /SOLO 会话 │ AI 已经有了上下文
└─────────────┘07 自定义终端配置文件
Trae 终端基于 VS Code 的终端架构,支持完整的 Profile 系统。你可以配置多个终端类型,一键切换。
配置 Profiles
在 .trae/settings.json 或 settings.json 中添加:
{
"terminal.integrated.profiles.windows": {
"PowerShell": { "path": "pwsh", "args": ["-NoLogo"] },
"Command Prompt": { "path": "cmd" },
"Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe" }
},
"terminal.integrated.profiles.osx": {
"zsh (默认)": { "path": "zsh" },
"bash": { "path": "bash" },
"Python REPL": { "path": "python3" }
},
"terminal.integrated.defaultProfile.osx": "zsh (默认)"
}针对不同项目的 Profile 策略
一个实用的技巧是:不同项目类型使用不同的默认 Profile。
| 项目类型 | 推荐 Profile | 理由 |
|---|---|---|
| Node.js 前端 | zsh/bash | 最通用的 shell,npm 脚本兼容好 |
| Python 后端 | Python REPL 或 zsh | 快速切换交互式 Python 环境 |
| .NET / C# | PowerShell | Windows 生态最佳体验 |
| Go / Rust | zsh | 轻量编译型语言,通用 shell 够用 |
| 多容器项目 | Docker Terminal | 直接进入容器内终端 |
启动时自动执行的命令
你还可以配置终端启动时自动执行的命令:
{
"terminal.integrated.cwd": "${workspaceFolder}",
"terminal.integrated.env.osx": {
"NODE_ENV": "development"
},
"terminal.integrated.shellArgs.osx": []
}这样每次打开终端,默认就在项目根目录,环境变量也自动设置好了。
08 命令历史与 AI 学习
这是 Trae 终端一个容易忽略但非常有长期价值的功能。
AI 从你的命令历史中学习什么
Trae 会分析你的终端使用习惯,形成对”你这个人”的建模:
AI 对用户终端的长期记忆
├── 你常用哪些命令
│ ├── npm / yarn / pnpm(偏好哪个包管理器)
│ ├── git 工作流(rebase 还是 merge)
│ └── 构建工具(webpack / vite / tsc)
├── 你的项目目录习惯
│ ├── 前端项目从哪个目录启动
│ └── 后端项目常用的端口号
├── 你偏好的启动方式
│ ├── npm run dev
│ ├── docker-compose up
│ └── python manage.py runserver
└── 你常犯的错误
├── 总会忘记装某个依赖
└── 某种模式容易打错命令学习的实际效果
你用 Trae 时间越长,AI 对你的终端习惯越了解:
第一周:
你:帮我跑项目
AI:好的,我看到 package.json,要执行 npm run dev 吗?一个月后:
你:帮我跑项目
AI:根据你之前的习惯,这个项目你通常先用 `npm install`,
然后用 `npm run dev`(端口 3000)。
这次要从头开始还是继续之前的工作?
需要我一起执行吗?三个月后:
你:npm run build 报错了
AI:这个错误你上周遇到过三次,都是因为 .env.local 中缺少
API_KEY 变量。要我把上次的修复方案直接应用吗?隐私控制
如果你对 AI 学习终端历史有顾虑,可以在设置中控制:
{
"trae.terminal.aiLearning": {
"enabled": true,
"learnFromHistory": true,
"learnFromErrors": true,
"maxHistoryLines": 1000
}
}设置 "enabled": false 可以完全关闭 AI 从终端学习的能力。
09 快捷键与效率技巧
终端内的快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+ “(反引号) | 切换终端面板 |
Cmd+K | 清除终端内容 |
Cmd+↑ / Cmd+↓ | 滚动到终端顶部/底部 |
Cmd++ / Cmd+- | 放大/缩小终端字体 |
Cmd+F | 在终端中搜索 |
Cmd+Shift+F | 在整个工作区搜索(包括终端输出) |
Cmd+click 文件路径 | 在编辑器中打开对应文件 |
Cmd+D | 选择当前终端中的输出行 |
实用工作流
1. 把 AI 当终端笔记本
你:帮我记录一下这个项目常用的命令
AI:根据你的使用情况,这个项目的常用命令是:
- npm run dev → 启动开发服务器(端口 5173)
- npm run build → 构建生产版本
- npm run test:watch → 持续运行测试
- npm run lint → 代码检查
要我创建一个 .trae/commands.md 文件保存下来吗?2. 一键回到上次出错的位置
报错了 → 点 AI 的错误提示 → 自动跳转到编辑器对应行号。你不用在终端和编辑器之间来回切换查找行号。
3. 用自然语言运行复杂命令
你:帮我在 8080 端口跑一个 Python 的 HTTP 服务器,只允许本地访问
AI: 执行 python3 -m http.server 8080 --bind 127.0.0.1
┌─────────────────────────────────┐
│ ⚠ AI 将执行: python3 -m │
│ http.server 8080 --bind │
│ 127.0.0.1 │
│ [确认执行] [修改命令] [取消] │
└─────────────────────────────────┘你不用记住 http.server 模块怎么拼、--bind 参数怎么写——用自然语言描述,AI 翻译成准确的命令。
10 常见陷阱
| 陷阱 | 现象 | 解决方案 |
|---|---|---|
| AI 误判终端上下文 | 你刚在 A 项目跑完命令,切到 B 项目,AI 还在用 A 的上下文 | 终端的每个标签独立跟踪,用 Cmd+C 清空当前标签的命令缓存 |
| 修复建议太激进 | AI 检测到一个 warning 就建议”修复”,但这个 warning 是无害的 | 在提示中选择”忽略”,或告诉 AI “这个 warning 我已知,不需处理” |
| 长输出截断 | 命令输出太长(如编译日志),AI 只看到尾部 | 用 grep 过滤关键行再输出,或把输出重定向到文件 > build.log |
| 命令执行权限 | AI 提议执行的命令你不确定安全 | 确认对话框中点”修改命令”查看并调整参数,不要直接确认 |
| 多终端混乱 | 开了 5-6 个终端标签,AI 搞混了焦点 | 每个标签起一个有意义的名字(双击标签编辑),让 AI 知道”到哪个标签执行” |
11 小结
| 要点 | 说明 |
|---|---|
| AI 感知 | 终端不再是黑盒——AI 实时感知目录、命令、退出码和关键输出 |
| 命令执行 | AI 可以替你执行命令,三层安全机制保障(只读→确认→手动) |
| 错误修复 | 捕获错误→分析原因→建议修复→一键应用,闭环效率极高 |
| 上下文贯通 | 终端输出自动进入 Chat/Builder/SOLO,彻底告别复制粘贴 |
| 配置文件 | Profiles 系统支持多种 shell 环境,按项目自由切换 |
| AI 学习 | 长期使用后 AI 越来越懂你的习惯,建立”终端画像” |
| 隐私可控 | 所有 AI 学习行为均可关闭 |
心智模型:Trae 终端不是一个”更漂亮的终端”——它是一个配了 AI 副驾驶的终端。你自己握着方向盘决定去哪里,但副驾驶一直看着路况,在你走神时提醒你、在你犯错时帮你纠正。它不会抢方向盘,但会让这段路好走很多。
下一篇:18 项目分析 —— Trae 的代码库分析能力,AI 如何读懂你的整个项目。
注:下一篇链接中的 18 项目分析为预留章节,内容待补充。