Should I Switch from VS Code to Cursor — and How Do I Set It Up?
A dev's honest Cursor setup notes — what actually sped me up, what I ignore, and the workflow I use after a month of daily use.
I'd been on VS Code for years. When Cursor kept showing up in my feed, I assumed it was Copilot in a trench coat. I only installed it because I was stuck on a refactor I didn't want to touch — a pile of similar components and no energy to copy-paste my way through it.
First week: mixed. Second week: I stopped opening VS Code for side projects. Not because Cursor is magic — because three specific features matched how I already work, just faster.
This is the setup and workflow I settled on. Not every feature. Not "10x developer" talk.
What's actually different (in plain terms)
Cursor is a VS Code fork with AI wired in deeper than a plugin bolt-on:
- Tab completion — predicts the next chunk of code, not just the next word
- Inline edit (Cmd+K) — select code, tell it what to change, diff in place
- Composer — bigger tasks across multiple files, you approve each edit
- Codebase chat — asks questions against your repo, not generic Stack Overflow answers
If you live in VS Code already, migration is boring in a good way. Extensions and keybindings mostly come along.
Installation (took me about two minutes)
Download from cursor.com. Open your project folder the same way you would in VS Code.
I imported my VS Code settings on first launch and kept my theme. Felt like home with a chat panel.
The three features I use daily
1. Tab completion
Grey suggestion appears as you type. Tab to accept.
Works best when you leave a hint:
// fetch paginated posts, handle loading + error states
Then Tab. Sometimes it nails the whole function. Sometimes you accept three lines and fix the rest. Still faster than typing boilerplate from scratch.
Personal detail: I wrote a docstring first on a utility function — Cursor filled the implementation before I got to the opening brace. Small win, but that's when I stopped treating it as a toy.
2. Inline edit — Cmd+K (Ctrl+K on Windows)
Select code. Cmd+K. Type what you want:
Make this async
Add error handling for network failures
Rename to match our existing ApiClient pattern
It patches in place. You accept or undo. I use this more than full regeneration — less churn, fewer surprise rewrites.
I once asked it to "add error handling" on a fetch wrapper and it caught a case I'd been procrastinating on. I still read the diff. Always read the diff.
3. Composer — Cmd+Shift+I
For "create this hook / component / route" jobs that span files.
Example prompt I used on a Next.js project:
Create a React hook that fetches paginated data from our API.
Handle loading, errors, and refetch. Use our existing ApiClient in lib/.
Match patterns from other hooks in the project.
It proposes file changes. You approve line by line. Good for scaffolding. Bad if you accept everything without reading — I've learned that the hard way once, with an extra dependency I didn't want.
.cursorrules — worth five minutes
I added a .cursorrules file at the project root so suggestions stop fighting our stack:
You are working on a Next.js app using TypeScript and Tailwind CSS.
Rules:
- Use the App Router, not Pages Router
- Server components by default; "use client" only when needed
- PascalCase components, camelCase functions
- Shared logic lives in /lib, not inside page files
- Prefer simple error handling — no over-engineered wrappers
Vague rules get vague code. Specific rules get fewer arguments with the model.
Second personal detail: before rules, Cursor kept suggesting Pages Router patterns in an App Router repo. Three lines in .cursorrules mostly fixed that. Not perfectly — but enough that I stopped rage-undoing.
The workflow that stuck
What I actually do, most days:
- Comment what I want, then Tab for a first pass
- Composer for new files — hooks, components, test scaffolds
- Cmd+K to refine — don't regenerate the whole file for one fix
- Chat (Cmd+L) for "where is X?" — "where do we call the API for auth?" beats grep when I'm new to a codebase
What I skip: asking it to architect entire features in one shot and shipping blind. That's how you get clever code you don't understand.
Pricing (as of when I wrote this)
- Free — limited completions and slow premium requests
- Pro (~$20/month) — unlimited tab completion, more fast requests
- Business — teams and admin stuff
I pay for Pro. Rough math: if it saves me one hour a month, it pays for itself. It saves more than that on boilerplate weeks. On debugging weeks, less — AI doesn't replace thinking through a weird bug.
Where I land on Cursor
It's not a replacement for knowing your codebase. It's a faster typing and scaffolding layer when you already know what you want — or you're exploring something small enough to review in a diff.
I still use git, still run tests, still reject bad suggestions. Cursor wins on the boring middle of coding: CRUD hooks, repetitive components, "make this match the pattern over there."
If you're on VS Code and curious: install it on a side project for a week. Keep your old editor open if that makes you feel safer. You don't owe it a full switch on day one.
If you're learning AI like I am — this is one of the tools where daily use actually teaches you something: how to describe code clearly, how to review generated diffs, when not to ask the model.
That's the skill that outlasts whichever editor is trending next month.