Tab 智能补全
很多人第一次用 Cursor,最先感觉到“这工具确实不一样”的地方,往往不是 Chat,也不是 Composer,而是 Tab 补全。
因为它不是单纯给你补一个单词,而是会沿着你当前的代码语境,往前猜一整段实现。用顺了以后,写样板逻辑、重复代码、熟悉模式代码会明显更快。
Tab 能做什么?
Tab 支持:
- 自动补全多行代码块
- 在同一文件或跨文件跳转到下一处补全建议
这让你可以用很少的输入快速铺好代码骨架。
真正有价值的,不是“它能补很多”,而是“它能不能顺着你的当前意图补”。这两件事差别很大。
基础用法
- 开始输入代码(函数名、变量名或注释)
- Tab 建议会自动出现
- 按
Tab接受建议
例如:
function calculate
常用设置
你可以在设置中调整 Tab 的体验:
{
"cursor.autocomplete.enabled": true,
"cursor.autocomplete.delay": 100,
"cursor.autocomplete.autoAccept": false
}
建议先保持默认设置,熟悉后再调节延迟或自动接受策略。
如果你刚开始用,我其实不建议太早开自动接受。先建立“看一眼就知道该不该接”的判断,比追求更快更重要。
提升效果的小技巧
- 先写函数名或注释,提示更稳定
- 让函数签名更明确(参数与返回值)
- 对复杂逻辑先写伪代码,再让 Tab 补全细节
我还会补一个很实用的经验:
- 如果你脑子里已经有明确结构,Tab 特别好用
- 如果你自己都还没想清楚,Tab 很容易帮你“写出一个看起来像答案的东西”
所以它更像一个加速器,而不是替你做设计判断的工具。
Tab 最适合哪些场景
我觉得它最适合用在这些地方:
- 写重复模式的组件代码
- 补常见数据转换逻辑
- 顺着已有风格继续写函数
- 把注释或伪代码快速翻成实现
反过来,如果是:
- 架构还没想清楚
- 状态流很复杂
- 涉及很多跨文件约束
那通常应该先用 Chat 或 Composer,把方向定下来再回到 Tab。
什么时候该拒绝建议
这点很重要。Tab 高效,不代表每次都该接。
我通常会拒绝的情况包括:
- 它开始补一段你其实不想走的实现方向
- 它把命名风格带偏了
- 它补得太长,已经超出你当前想控制的范围
接补全和拒补全一样重要。真正顺手的人,不是每次都按 Tab,而是知道什么时候按、什么时候停。
下一步
如果你刚开始练 Cursor,我会建议先把 Tab 和 Cmd/Ctrl + K 这两个入口用熟。一个负责提速,一个负责定点改动,组合起来最容易先形成手感。