如何用Cursor颠覆你的iOS开发之旅
- Rifx.Online
- Programming , Technology , AI Assisted Development
- 20 Jan, 2025
最近,关于 AI 的讨论和热议很多,关于它是否能改善你的开发工作流程。我想谈谈 AI 及其在 Cursor 中的实现是如何显著提高我的速度和效率的。
简而言之,Cursor 是 VSCode 的一个分支,内置了许多代码编辑的 AI 辅助功能。如果你在 VSCode 中使用过 Copilot,你可能知道我在说什么。嗯,想象一下 Copilot,但要好十倍,并且还有许多其他旨在提高生产力的有用功能。
这个故事是关于我如何使用它并为我的开源项目 SwiftUI Mastodon 客户端 Ice Cubes 进行设置的。
我完全切换到它才几周,所以这个故事主要是关于设置和使用基本功能。然而,你可以期待一篇后续文章,讲述如何进一步提升你的工作流程。
你需要什么?
首先,你需要下载 Cursor。它是免费的,但我稍后演示的一些功能需要 $20 的订阅。我并不是想在这里推销什么;你可以自己判断它是否值得。免费版允许你使用一段时间。此外,如果你已经为 OpenAI、Claude 和 Gemini 付费,可以在设置中添加自己的密钥。
下载后,你需要安装几个扩展和 brew 配方。
brew install xcode-build-server
这将允许 sourcekit-LSP 在 Xcode 之外工作,因此你将获得跳转到定义、查看所有引用、调用树分析等所有功能……几乎在 Xcode 编辑代码时获得的所有功能,你在 Cursor 中也能获得。
接下来,xcbeautify
brew install xcbeautify
这将美化在 Cursor 终端中的 xcodebuild 输出。
还有 Swift format,如果你还没有安装的话。
brew install swiftformat
然后启动 Cursor,打开扩展选项卡,并安装
这样你就可以获得语法高亮和所有 Swift 语言功能。
Sweetpad 是让整个流程在 Xcode GUI 之外工作的基础。你应该浏览扩展的网站,熟悉它的功能、快捷键、工作原理等……我将在本文中谈到其中一些,但不是全部。
Sweetpad 在 xcodebuild CLI(以及更多)周围包装了一堆快捷键,允许你扫描你的目标、选择目标设备、构建和运行你的应用,就像在 Xcode 中一样。此外,它会为 Xcode Build Server 设置你的项目,以便你获得上述所有功能。
因此,一旦安装了 Sweetpad,使用 CMD+SHIFT+P 打开命令面板并选择
Sweetpad: Generate Build Server Config
这将在你的目录根部创建一个 buildServer.json
,并允许 Xcode Build Server 与你的项目目录一起工作。
完成后,点击构建 & 运行(从命令面板或使用 Cursor 中的 Sweetpad 选项卡(你应该将其固定))。从那里,你可以浏览所有目标并在其中任何一个上点击运行。
在此阶段至少构建一次你的项目很重要,以获取自动补全、跳转到引用等各种功能……
使用 Cursor 可以获得哪些功能?
完成上述所有步骤后,我们可以开始编码了!而这正是 Cursor 与 Xcode 区别所在。
光标标签
虽然标准的 SourceKit 自动完成功能有效,但光标有自己基于 AI 的自动补全,可以预测你的下一个编辑。它还会索引你的项目,以便在其自定义模型上进行一些自定义嵌入,从而为你的项目提供量身定制的补全。
在我的案例中,当我在开发新功能时,光标几乎准确知道我接下来想写什么,我只需按下 Tab 键。看看上面的例子,它添加了一个包含三个按钮的部分,以过滤一些通知,它从我在模型/API 方面的工作中获取了所有上下文,并编写了 UI 代码(以及大部分 HTTP 代码)。
这并不是全部;如果你在某些代码中更改了一些逻辑或命名,它足够智能,可以更改相关代码以适应你的新逻辑或命名。它会建议相关的更改,你只需按下 Tab 键即可应用并跳转到下一个更改。
仅凭这一功能对我来说就是一个游戏规则的改变。写代码的速度快了很多。重要的是,这仍然是我的代码,符合我的风格,适合项目。当然,有时我需要编辑其中的一部分,但大多数时候,它都很合适。
行内编辑
在空行上按下 CMD+K 将允许您从任何提示生成上下文代码。您还可以在代码行上按下 CMD+K,这将把相关的代码片段嵌入到提示中。从那里,您可以写一个提示,要求重构或任何您真正想要的内容。
聊天
下一个精彩的功能是聊天功能。每当你想询问与编码相关的任何问题,或者关于当前或多个文件的问题时,只需按 CMD+L 打开聊天面板。
在这里,你可以选择想要交谈的模型(均包含在 Cursor 订阅中),嵌入任何代码的一部分,向当前上下文添加文件等……
我经常使用它来讨论架构或理解代码为何以某种方式运行。当然,你可以使用基于网页的 ChatGPT 或 Claude 界面,但 Cursor 允许你在代码编辑器中直接进行,而无需切换上下文,并且有许多快捷键可以轻松嵌入当前代码。对我来说,这就是使用它编程更好、更快的原因。
例如,在上面的例子中,我想检查 Swift 并发重入问题。我们进行了反复的聊天,检查如何防止这个问题或增强代码。
在这里,一旦你对代码建议感到满意,可以点击应用按钮,Cursor 会将其作为 git diff 应用,你可以部分接受/拒绝,进一步编辑等……
Composer
这个功能接近聊天,但如果你想批量编辑或生成多个文件,它非常有价值。我还没有像应该的那样经常使用它,但如果有一个非常详细的提示来从头开始设置新项目,它可能会非常有帮助。
我想我暂时就停在这里;虽然这并不像我想要的那么深入,因为我没有无限的时间来写作,但我希望你喜欢这种与 Xcode 以外的编辑器一起处理 iOS 项目的新视角。