对标 Cursor 和 Windsurf,Trae 如何成为中文开发者的首选?

14,114 阅读12分钟

字节跳动旗下一款针对海外市场的 AI IDE 产品 —— Trae,今天正式上线了!

作为一款直接对标 Cursor 和 Windsurf 的全新 AI IDE,Trae 的目标不仅是与这些工具竞争,更是要弥补它们在中文开发者体验上的短板。现在 Trae IDE 的 Claude 3.5 和 GPT-4o 都是限时免费用 ,有兴趣的快来体验吧 —— trae.ai

其实回过头来看,我们国人写代码的日常,大部分时间都是离不开英文的。变量名、函数名、注释,甚至是工具的界面和文档,几乎都以英文为主。对于中文开发者来说,这种中英结合的工作模式已经习以为常,但这并不意味着我们不需要一款真正为中文开发者量身定制的工具

很多国外的 IDE,比如 Cursor 和 Windsurf,甚至是 Vscode,虽然功能强大,但它们并没有针对中文开发者做特别优化。尤其是在中文语言支持上,往往显得有些“水土不服”。

Trae 的出现,正是为了解决这些痛点。作为一个支持中文语言的 IDE,Trae 从底层设计上就充分考虑了中文开发者的实际需求。无论是界面语言的全面中文化,还是对代码注释等的友好支持,Trae 都让开发者感受到一种“母语级”的顺畅体验。

当然,Trae 也同样集成了国外主流的大模型 Claude 3.5 和 GPT-4o ,为开发者提供智能代码生成和逻辑优化功能。这些模型在理解中文需求时表现已经相当不错,但偶尔也会因为语义的细微差异,生成的答案未必完全符合预期。不过,这并不是 Trae 的核心问题所在,因为 Trae 的重点从来不在于“AI 对话有多智能”,而在于它作为中文开发者的 IDE,有多贴合我们的实际使用场景。

接下来,我会结合自己的使用体验,聊聊 Trae 是如何提升开发效率的,而且在对标 Cursor ,Trae 有哪些不一样的。

Hello World - Trae

  1. 基于 Trae 目前只支持 MacOS 系统,安装完毕后,打开 Trae ,就看到了它的标志性 Logo:

  1. 我们直接下一步,在这里,我们就可以直接选择 IDE 默认的内置语言和主题,简单清晰,这时候英文不好的小伙伴可以果断选中文了:

  1. 我们下一步,这里竟然可以让我们直接从已有的本地 Vscode 或者 Cursor 已有配置中进行迁移,说来也巧,我的配置一开始是使用 Vscode 的,之后第一次使用 Cursor 的时候,就可以直接从 Vscode 的配置中进行迁移,但现在却轮到 Trae 了,有点戏剧化,但确实很方便,不用一会就迁移完了:

  1. 接下来,和 Vscode 或 Cursor 一样,都可以在本地终端安装对应的命令行工具:

  1. 最好就是注册登录去进行使用了,目前为止调用 AI 大模型都是限免的,大家可以用起来:

  1. 最后,就是 Trae 的界面了,和 Vscode 或 Cursor 很相似,应该都是基于 Electron 开发的,所以基本的界面和使用体验都是差不多的,这里就不多赘述了。

初探 Trae

进到 Trae 界面,首先我第一个就去看了下支持的大模型,目前只有两个:

  1. Claude 3.5 Sonnet
  2. GPT-4o

都是两个主流的编程大模型,而且都是限免,目前可以放心使用。

然后我又在侧边栏看了看,又找到了Marscode工具的标志性功能 - Webview

这是一个针对开发新手很友好的一个 web 页面显示功能,可以直接让你在 IDE 的一个窗口中显示一个 web 页面,当你执行程序有运行 web 服务的时候,IDE 右下角会自动弹窗告诉你有新页面可以访问,点击即可在 IDE 中打开(拿了一个我现有的小项目来演示):

有了这个功能,前端开发的小伙伴就可以直接在 IDE 上左边一个 web 页面,右边一个你的代码编辑区域来开发了,这个体验还是很棒的。

Chat 功能

在 Trae 中,AI Chat 功能是基于大模型来实现的,目前我们可以用以下两种方式去调用它:

  1. 直接在指定的代码区域来对话进行更新,快捷键 - Cmd + i

在对话编辑的区域,与 Cursor 的代码变更的展示方式不同,Trae 是直接显示左右两边的代码,左边是你原始代码,右边是 AI 修复后的代码,这种交互方式对于我个人来说还是挺直观的。

这里我发现了一个情况,即在使用这个方式进行代码更新的时候,它不像 Cursor 一样可以追问问题下来来回答出你想要的代码,而是每次都像是基于摘取的上下文进行重新回答。然后你只能选择接受或者拒绝,如果接受,则会将你当前的代码进行覆盖,如果拒绝,则不会进行任何操作。

还有一点是,目前 cmd+i 操作回滚后,就不能再撤销回滚了,需要重新操作的,这点在 Cursor 的使用体验上目前是可以做到代码和对话文字颗粒度的回滚,感觉上还是有必要的。但还算是庆幸的是,AI Chat 功能目前和 Cursor 一样,不能撤回基于 AI 回答修改过的代码内容,只能人工去一个个校验撤回, 两个都有这个毛病,看看 Trae 团队是否可以考虑下提前完善这个功能哈哈。

  1. 使用 AI 对话框进行更新,快捷键 - Cmd + u

在这里,有个特色的功能我觉得比 Cursor 要方便好用多了,那就是 Context 引用功能,先给你看看它都可以引用些什么来进行对话:

  • Code - 当前选中文件的某个代码块
  • File - 指定文件的文件名
  • Folder - 指定文件夹的文件名
  • Workspace - 当前项目的所有文件

后面三个其实和 Cursor 的用法差不多,主要是第一个 Code 的功能,它是可以直接指定引用当前代码中的某个函数的代码快,如下图,这样用起来有时候为了不污染 LLM 的上下文,这种颗粒度的引用就很实用了:

接下来,我们就对话来叫 AI 帮我解决些问题,比如叫它帮我完善一些这个代码文件结构

看到它的结果,毕竟是基于比较好的大模型来实现,给出的结果都是挺可以的,也能懂得按需求将代码更新到不同的代码文件,甚至是创建文件,回答中每个需要更新的代码都有详细的相对路径位置:

但这里有个要留意的点是,如果一次 AI Chat 的回答需要修改多个代码位置,甚至是多个代码文件的时候,它不像 Cursor 一样帮忙全部检索好对应文件位置的改动,然后可以直接让你一键全部应用。这里的更偏向是回答了你对应位置的代码建议,然后需要你人工一个个地去 review,才会被记录到全部应用的计数中去,这样的全部应用才会包含你 review 过的代码,没有 review 的代码不会被应用的

所以这个大家要十分留意,不然很容易会出现代码更新不全的情况。

最后一点,就是目前 AI Chat 还不支持直接读取外网链接来交互回答,这点我个人认为十分重要,Trae 团队应该会很快去跟进好的:

Builder 功能

好了,接下来我们来试试 Trae 的重头戏功能 - Builder,它直接对标的就是 Cursor 的 Agent 功能,即都可以通过用户的提问直接生成一个完整的代码项目出来

这里我直接拿了一个目前国内最火的 AI 开源社区的网站首页来试试手,看看它能否直接给它上传照片和一两句话生成一个静态网站出来:

在这里,它就开始思考,一个个地生成我们的项目文件,甚至是需要的时候,还会基于项目来征求我的意见来执行一些命令:

但这里就会开始有个问题,那就是因为这个是一个从零到一的项目,按照刚刚 AI Chat 发现的一个 review 应用问题,如果 AI 需要执行某个命令,比如 npm install 来安装依赖,但是它生成这个执行命令之前所生成的代码文件,如果你不提前应用更新到项目中,那么它就会报错,因为它会完全找不到这些依赖文件,就会陷入死循坏先有鸡还是先有蛋的问题,所以这里需要我们手动去应用更新,然后再允许它继续执行下去:

不过很不巧的是,在后续的执行中,我还是遇到了和在 Cursor 上遇到的类似问题,AI 征求执行命令时使用的 shell 环境不是我的默认环境,即不会携带我的一些默认环境变量和声明,这就导致了我本地本来安装好了 nodejs 环境,但是它却找不到,导致报错,这就很尴尬了。而且我在 Cursor 和 Trae 这里都找不到对应的修改位置(或者说我觉得对的位置都改过了,但还是切不到我默认使用的 shell 环境去运行):

所以经过一番折腾,我还是换个其他语言的演示项目吧,比如 Python 的:

帮我写一个简单版的 Stable Diffusion web UI 的 Python gradio APP 项目吧,能使用简单的文生图和图生图绘画交互就好

如果大家对这个提问不理解的,可以上网搜索一下 - Stable Diffusion web UI

这次我就打了一句话,连图片都没给,它的确生成了对应的一个项目给我,而且直接一次跑成功了,都有要求对应的文生图和图生图交互界面:

很好,这次终于能用了,我们趁热打铁,再加个新需求给它,帮我加多个文生视频的交互:

行,生成完了,但是执行过程中报错了,不用慌,我们直接点击命令行输出的报错,隔壁就会出现一个Add To Chat按钮,点击它,它就会自动将报错信息复制到 AI Chat 中,然后你就可以基于这个报错信息来让 AI 帮你解决问题了:

很好,直接应用,执行,这次成功了:

看来,Builder 的这个功能的确和 Cursor 的 Agent 功能很相似,但是有个小瑕疵,那就是 Cursor 的 agent 功能大部分情况会基于项目情况,比如我这里是 Python,会自动帮我预先创建一个 Venv 或者 Conda 环境来跑项目,但是 Builder 这里没有,会直接使用我的默认环境或者需要我们预先手动创建,这点我觉得还是需要改进的。(我不知道是不是我尝试的次数不多,可能下次它就会帮我创建吧哈哈,毕竟这和大模型能力以及是否有 IDE 工程化的一些功能有关)

其他

除此以外,Trae 的 Terminal 终端暂时还没有通过 AI 对话直接返回给你你想要的命令去给你执行,但这个其实超实用,建议可以之后延伸实现出来;

还有一个我觉得很好用的点,就是所有的对话框中,默认空时都会有一个这个提示:

这里其实我们多轮对话后,我们是可以直接通过按上下按钮来获取到我们之前对话的上下文,然后可以基于这个上下文来继续对话,甚至是包括之前对话中的图片也可以直接加载进去,这点我觉得很棒,可以很方便地进行上下文追溯。

总结

Trae 的出现,不仅仅是为了解决中文开发者在工具使用上的“水土不服”,更是一次从本地化体验到全球化视野的全新尝试。它通过深度优化中文语言支持、贴合开发者实际场景的功能设计,以及对主流 AI 模型的整合,重新定义了中文开发者友好型 IDE的标准。

更重要的是,Trae 的意义并不仅限于工具本身,它代表了技术与文化的融合。在全球化的今天,技术工具的使用不应再局限于某种单一语言或文化,而是要真正服务于多元化的开发者社区。Trae 的诞生,无疑为中文开发者提供了一个更高效、更友好的编程环境,也为全球开发工具的本地化进程提供了宝贵的参考。

如果大家感兴趣,可以关注我的微信公众号 - 程序员安仔,关注更多第一时间的 AI 和技术资讯。