Course · Cursor · The daily edit loop
Inline edit: the bounded local change
Between “type it myself with Tab’s help” (Tab being Cursor’s autocomplete) and “hand it to the Agent” (the full task runner in the sidebar) sits inline edit, opened with Cmd+K on macOS or Ctrl+K on Windows and Linux (the shortcut reference lists it as “Inline edit”, as of September 2026).
Inline edit is the everyday non-agentic edit gesture. You select the code you want to change, press the chord, and a small prompt box opens right there in the file (the inline-edit docs describe the gesture as selecting first, then Cmd+K - the selection is what bounds the edit, which is the point of this gesture). You type what you want changed - “extract this into a helper”, “add an error return here”, “make this case-insensitive” - and Cursor rewrites the selection in place, showing the result as a diff you accept or reject before it lands.
The reason it’s a distinct gesture and not just “the Agent, smaller” is scope. Inline edit is scoped to what you selected. It isn’t going to wander into four other files, run your tests, and come back with a five-file diff. It does the bounded, local, single-spot change - the kind where you know exactly which lines should change and roughly how, you just don’t want to type the new version by hand. That makes it predictable in a way the Agent deliberately isn’t: you always know how far the change can reach, because you drew its boundary yourself with the selection.
Here is the shape of a turn on budgetcli, the course’s illustrative TypeScript finance API. Its CSV importer assumes statement dates arrive as MM/DD; you have selected the one line that destructures the parsed fields:
# Illustrative: budgetcli's CSV importer assumes MM/DD. You've# selected the parse line and pressed Cmd/Ctrl+K:
┌─ Cmd/Ctrl+K prompt ──────────────────────────────┐ │ parse this as DD/MM, not MM/DD │ └───────────────────────────────────────────────────┘
- const [month, day] = raw.split("/").map(Number); + const [day, month] = raw.split("/").map(Number);
[✓ keep] [✗ undo]Three rungs, smallest first
Section titled “Three rungs, smallest first”Put the three gestures in a row, smallest to largest, and the skill is reaching for the smallest one that fits:
- Tab - you’re already typing the change; let it finish your keystrokes.
- Cmd/Ctrl+K inline edit - you know which lines change and roughly how, but don’t want to type the new version. Bounded to your selection.
- Agent sidebar - you can describe the outcome but not the edit; you want it to find the files, make the changes, and run the checks.
Picking the smallest rung that fits is most of what “fast in Cursor” means. The instinct that takes longest to build is down-shifting - catching yourself about to summon the Agent for something inline edit would do in one bounded pass.
The top rung of that ladder is the Agent sidebar, and everything you type into it runs on a two-character grammar worth getting straight before you go further. Next: what @ and / each do.