From cursor-pack
Guides Cursor Tab autocomplete: ghost text acceptance, key bindings (Tab/Esc), settings tweaks, and context tips for better AI code predictions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cursor-pack:cursor-tab-completionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
// 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);
}
| 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.
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 |
If Tab suggestions in comments are distracting:
Cursor Settings > Tab Completion > uncheck Trigger in comments
Tab quality depends heavily on available context:
.cursor/rules/*.mdc or .cursorrules content// 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.
// 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
}
| 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.
If Tab conflicts with other extensions:
Extensions > search "Copilot" > Disable. Running both causes duplicate ghost text.Remap if needed: Cmd+K Cmd+S > search acceptCursorTabSuggestion > assign new key.
Tab gets better with usage. The model learns from:
After a few days on a project, Tab suggestions become noticeably more aligned with your coding style.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin cursor-packGuides creation of a TypeScript project to hands-on learn Cursor AI: Tab completion from comments, Chat for code gen/explain, Inline Edit for diffs.
Configures and optimizes Windsurf Supercomplete AI code completions including triggers, language options, custom snippets, performance tuning, and personalization for Windsurf IDE users.
Creates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.