{"id":298,"date":"2026-05-31T13:03:37","date_gmt":"2026-05-31T13:03:37","guid":{"rendered":"https:\/\/abrarqasim.com\/blog\/cursor-2026-settings-i-actually-use-and-ones-i-turned-off\/"},"modified":"2026-05-31T13:03:37","modified_gmt":"2026-05-31T13:03:37","slug":"cursor-2026-settings-i-actually-use-and-ones-i-turned-off","status":"publish","type":"post","link":"https:\/\/abrarqasim.com\/blog\/cursor-2026-settings-i-actually-use-and-ones-i-turned-off\/","title":{"rendered":"Cursor in 2026: The Settings I Actually Use and the Ones I Turned Off"},"content":{"rendered":"<p>Okay, this is going to sound dumb, but I spent about three hours last weekend going through every Cursor setting one by one and deciding whether I actually use it. Not because I love settings menus, but because the surface area has roughly tripled since I started using Cursor in 2024 and I had a creeping feeling that the editor was doing too much without my consent.<\/p>\n<p>If you&rsquo;re new to it, Cursor is a fork of VS Code with first-class AI features baked in (tab autocomplete, an inline edit shortcut, a chat sidebar with codebase awareness, and an agent mode that can edit multiple files). I&rsquo;ve been writing TypeScript, Go, and PHP in it as my daily driver. This is what survived the audit.<\/p>\n<h2 id=\"the-two-year-version-of-my-cursor-setup\">The two-year version of my Cursor setup<\/h2>\n<p>I&rsquo;ll lead with the short version, because everything else is justification.<\/p>\n<p>On: tab autocomplete, inline edit (Cmd-K), chat with codebase indexing, agent mode for multi-file edits, custom rules file (<code>.cursorrules<\/code>).<\/p>\n<p>Off: auto-apply suggestions, auto-include open files in chat, the &ldquo;explain this code&rdquo; hover, automatic commit message generation, and the Composer-as-default behaviour.<\/p>\n<p>That&rsquo;s it. Six things on, five things off. The rest I either tolerate at defaults or have never opened.<\/p>\n<h2 id=\"why-i-keep-tab-on-but-auto-apply-off\">Why I keep tab on but auto-apply off<\/h2>\n<p>Tab autocomplete is the feature that quietly earned its place in my workflow. It guesses the next chunk of code at the cursor and lets me accept it with <code>Tab<\/code>. After two years I trust it for boilerplate (loop scaffolding, mock data, switch arms) and I do not trust it for business logic. I&rsquo;m not the first person to find this trade-off; the <a href=\"https:\/\/docs.cursor.com\/tab\/overview\" rel=\"nofollow noopener\" target=\"_blank\">Cursor documentation on tab<\/a> is explicit that it&rsquo;s optimised for completion, not authoring.<\/p>\n<p>What I turned off, hard, is anything that <em>applies<\/em> a suggestion without an explicit keystroke. There used to be a setting that auto-saved generated code as soon as the model finished. I disabled it the day I noticed it had silently rewritten a config file while I was reading the chat panel. <\/p>\n<p>The pattern I now follow is, the model can suggest as much as it wants. Nothing reaches disk without me pressing Tab, Cmd-Enter, or hitting Accept. Friction is the feature.<\/p>\n<h2 id=\"the-cursorrules-file-does-more-than-people-think\">The <code>.cursorrules<\/code> file does more than people think<\/h2>\n<p>I used to ignore the rules file, until I read a <a href=\"https:\/\/cursor.com\/changelog\" rel=\"nofollow noopener\" target=\"_blank\">Cursor changelog entry<\/a> describing how it gets injected into every chat as system context. Once I realised it was running on every request, I started treating it like a tiny coding style document for the project. Here&rsquo;s a redacted version of one I keep in a Laravel codebase:<\/p>\n<pre><code># Project conventions\n- This is a Laravel 12 app. Prefer first-party Laravel APIs over Composer packages when both exist.\n- Use form requests for validation. Do not validate inline in controllers.\n- Use Filament Resources for admin screens. Do not write Blade admin tables by hand.\n- All money is stored as integer cents in the database. Never store decimals.\n\n# Style\n- PHP 8.4. Use property hooks where they remove a manual getter\/setter.\n- TypeScript strict mode. No `as` casts in feature code; prefer `satisfies`.\n- Tests live next to the code they test, never under tests\/.\n<\/code><\/pre>\n<p>The payoff is that the model stops suggesting things that are technically valid but wrong for the project. I&rsquo;ve had it stop reaching for raw Eloquent in places that have a repository, stop generating Bootstrap markup in a Tailwind app, and stop adding decimal money fields because I told it once in eight lines.<\/p>\n<p>The trick is to write rules as constraints, not preferences. &ldquo;Prefer&rdquo; works less reliably than &ldquo;Do not&rdquo;. And keep it short, because every token costs round-trip latency.<\/p>\n<h2 id=\"agent-mode-is-great-for-boring-edits-not-for-thinking\">Agent mode is great for boring edits, not for thinking<\/h2>\n<p>Cursor&rsquo;s agent mode (now the default Composer behaviour) can edit multiple files in one go. I use it for rote refactors: rename a function across the codebase, add a field to a migration plus its model plus its form, add the same defensive check to every route handler.<\/p>\n<p>What I learned the hard way is that agent mode is not a substitute for design. I tried using it to &ldquo;add a comments feature&rdquo; to a side project a few months ago. It produced a stack of files that compiled, ran, and were structurally wrong. The schema put comments under posts but not under any other model. The component was a one-off instead of reusable. The auth check was missing on delete. It took longer to untangle than it would have to write it myself.<\/p>\n<p>Since then I follow a rule I lifted from my own post on <a href=\"https:\/\/abrarqasim.com\/blog\/ai-debugging-why-i-stopped-letting-one-model-fix-itself\/\" rel=\"noopener\">AI debugging and feedback loops<\/a>: if I can&rsquo;t describe the change in one sentence, I shouldn&rsquo;t be in agent mode yet. I open inline edit, work through the design with chat, and only switch to agent mode once I&rsquo;d be comfortable doing the change manually.<\/p>\n<h2 id=\"what-i-turned-off-and-why\">What I turned off and why<\/h2>\n<p>A few specific settings I disabled, in order of how much focus they were costing me:<\/p>\n<p>Auto-include open editors in chat context. By default, Cursor will quietly attach the files you have open as context for your chat. Useful sometimes. Distracting when I have ten tabs open and I just wanted to ask a Stack Overflow style question. I now attach context explicitly with <code>@<\/code>.<\/p>\n<p>Auto-suggested commit messages. The model is fine at summarising a diff, but it has no idea what &ldquo;why&rdquo; my change is, so the commits read like generated changelogs. I&rsquo;d rather write <code>fix: clamp avatar upload at 2MB so mobile users stop hitting timeout<\/code> than <code>Updated AvatarController and added validation<\/code>.<\/p>\n<p>The &ldquo;explain this code&rdquo; hover. This is the small grey popover that appears when you hover over a function. It looked useful once. In practice, it kept popping up when I was just trying to read code. I now use <code>Cmd+L<\/code> to ask the chat when I actually want an explanation.<\/p>\n<p>Composer auto-open on new file. I&rsquo;d rather pick when the AI gets involved than have a side panel open every time I create a Blade view.<\/p>\n<h2 id=\"how-id-think-about-cursor-vs-copilot-in-2026\">How I&rsquo;d think about Cursor vs Copilot in 2026<\/h2>\n<p>I still get asked this every few weeks. The honest answer: if your editor of record is VS Code and your codebase fits in Copilot&rsquo;s context window comfortably, Copilot is excellent and cheaper. Cursor wins when you want multi-file edits and codebase-aware chat in one tool, and you&rsquo;re willing to pay for the model usage that buys you.<\/p>\n<p>For solo devs and small teams shipping greenfield code, Cursor&rsquo;s agent and chat surfaces are genuinely faster than Copilot&rsquo;s. For large monorepos with strict review processes, I&rsquo;d still default to Copilot plus an external assistant, because the surface area is smaller and easier to govern.<\/p>\n<p>If you want me to help your team set up a sensible Cursor or Copilot baseline, <a href=\"https:\/\/abrarqasim.com\/about\" rel=\"noopener\">that&rsquo;s part of what I do for clients<\/a>. Either way, please go open your settings and turn half of them off. Your editor should help you think, not race you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After two years on Cursor, here&#8217;s the model picker, rules, and tab settings I keep on, plus the auto-features I disabled because they were getting in the way.<\/p>\n","protected":false},"author":2,"featured_media":297,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"","rank_math_description":"After two years on Cursor, here's the model picker, rules, and tab settings I keep on, plus the auto-features I disabled because they were getting in the way.","rank_math_focus_keyword":"cursor ai news","rank_math_canonical_url":"","rank_math_robots":"","footnotes":""},"categories":[4],"tags":[70,185,98,344],"class_list":["post-298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-ai-coding","tag-cursor","tag-developer-tools","tag-ide"],"_links":{"self":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/comments?post=298"}],"version-history":[{"count":0,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media\/297"}],"wp:attachment":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media?parent=298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/categories?post=298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/tags?post=298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}