Manage master Cursor tab completion and AI code suggestions. Triggers on "cursor completion",
"cursor tab", "cursor suggestions", "cursor autocomplete", "cursor ghost text". Use when working with cursor tab completion functionality. Trigger with phrases like "cursor tab completion", "cursor completion", "cursor".
Master Cursor's AI-powered Tab completion system. Tab uses a specialized Cursor model trained for inline code prediction -- it learns from your accept/reject behavior to improve over time.
How Tab Works
You type code in the editor
Cursor's model predicts what comes next based on: current file, open tabs, recent edits, project rules
Ghost text (gray text) appears inline
You decide: Tab to accept, Esc to dismiss
// You type:
function validateEmail(email: string)
// Ghost text appears:
function validateEmail(email: string): boolean {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; ← gray ghost text
return emailRegex.test(email);
}
Key Bindings
Action
macOS
Windows/Linux
Accept full suggestion
Tab
Tab
Accept word-by-word
Cmd+→
Ctrl+→
Dismiss suggestion
Esc
Esc
Force trigger
Ctrl+Space
Ctrl+Space
Word-by-word acceptance (Cmd+→) is powerful for partial suggestions. If the AI suggests a complete function but you only want the signature, accept word-by-word until you have what you need, then type your own body.
Tab Completion Settings
Access via Cursor Settings > Tab:
Setting
Purpose
Recommendation
Tab Completion
Master on/off toggle
Keep enabled
Trigger in comments
Generate comment text
Disable for less noise
Accept suggestion keybinding
Remap Tab to another key
Default (Tab) works best
Suggestion delay
Time before ghost text appears
Lower = faster but more flicker
Disabling Tab for Comments
If Tab suggestions in comments are distracting:
Cursor Settings > Tab Completion > uncheck Trigger in comments
Context That Improves Completions
Tab quality depends heavily on available context:
Current file: The model reads the full file you are editing
Open editor tabs: Files open in other tabs provide pattern context
Recent edits: Changes you have made in the last few minutes
Project rules: .cursor/rules/*.mdc or .cursorrules content
Codebase index: If indexed, the model uses semantic code search
Tips for Better Suggestions
// BAD: Tab has no context about what you want
function process(data) {
// GOOD: Type signature gives Tab strong signal
function processPayment(
amount: number,
currency: 'USD' | 'EUR',
paymentMethod: PaymentMethod
): Promise<PaymentResult> {
Write descriptive function names and type signatures first. Tab uses these as strong signals for generating the body.
Using Comments as Prompts
// Parse CSV file, skip header row, return array of objects with typed fields
function parseCSV(filepath: string): Promise<Record<string, string>[]> {
// Tab will generate the full implementation based on the comment above
}
Tab vs Other AI Features
Feature
Trigger
Scope
Speed
Tab
Automatic while typing
Single completion
Instant (~100ms)
Inline Edit (Cmd+K)
Manual selection + prompt
Selected code block
~2-5 seconds
Chat (Cmd+L)
Manual prompt
Conversational
~3-10 seconds
Composer (Cmd+I)
Manual prompt
Multi-file
~5-30 seconds
Tab is the only feature that runs continuously as you type. It is optimized for speed over capability -- simple completions, not complex reasoning.
Important Limitations
No custom models for Tab: Even with BYOK (Bring Your Own Key), Tab always uses Cursor's proprietary model. Custom API keys apply to Chat and Composer only.
No reasoning: Tab predicts the next tokens; it does not reason about correctness. Always review suggestions.
Context window: Tab sees less context than Chat or Composer. For complex logic, use Cmd+K or Cmd+L instead.