Neovim vs VS Code vs JetBrains: picking a daily driver without a religion
Tom Reeves
August 27, 2026
I do not care which logo is on your dock. I care whether you can rename a symbol, run the test that failed, and pair with the person next to you without a twenty-minute sermon. Neovim, VS Code, and JetBrains are all good daily drivers in 2026 if you pick them for the week you actually have, not for the identity you want.
I cover developer tools for a living, after years as a cloud engineer who had opinions I have since had to eat. This is the decision I run when someone asks “which one should I live in,” and it is not the same question as when a modal editor is enough versus when you need a full IDE. That piece is the split. This one is the three-way daily driver: what you open every morning, not what you SSH into for a hotfix.
The three products, without the myth
Neovim is a text editor with a project you assemble. In 2026 that project can include LSP, a picker, a debugger adapter, and an agent plugin. It is fast, it is remote-friendly, and it is yours until it breaks. The daily-driver cost is maintenance. You are the vendor.
VS Code is a platform that pretends to be an editor. The extension marketplace is the product. Remote-SSH, Dev Containers, and the default language extensions are why teams standardize on it. It is also why a fresh install can feel like a casino: everything is one click from becoming a second job. Microsoft’s agent features live here first. That matters this year whether you like the company or not.
JetBrains is an IDE that still believes in a project model. Indexes, inspections, run configurations, a debugger that understands the framework. It costs money for the good stuff. It starts slower. It is still the least stupid way I know to live in a fat JVM or .NET tree, and it is surprisingly fine for Go and TypeScript if you already paid for the toolbox.
None of these is “more professional.” I have seen terrible code in all three. I have seen careful code in all three. The religion is a way to avoid naming your stack.

Pick from the week, not the timeline
If last month was mostly one language you already know, plus SSH, plus a lot of small files, Neovim as daily driver is honest. You will be faster at changing text than either of the others, and you will not wait for an indexer to decide the repo exists. You will also be the person who fixes the config on Monday after a plugin update. Budget that hour or you will spend it angry.
If last month was a mix of TypeScript, a container, a remote box, and pairing with people who do not want to learn your leader key, VS Code is the default I would not fight. It is the lowest-friction shared surface in 2026. The agent pane is there. The workspace file is there. The new hire opens the folder. That is not a small thing. It is most of onboarding.
If last month was Java, Kotlin, C#, a debugger you launched more than twice a week, or a monorepo whose tests only make sense as run configurations, JetBrains is the daily driver. I have watched people recreate half of IDEA in Neovim and then miss a breakpoint in a generated class. That is not craft. That is a tax you chose.
Polyglot weeks are why people keep two. That is allowed. A daily driver is the one that opens first. The other is a specialist. I open Neovim first on infra weeks and Fleet-or-IDEA first on JVM weeks. I do not need a tweet about it.
Money, machines, and other unglamorous filters
JetBrains is a subscription if you want the good IDEs. For a company, that is a rounding error next to salary. For a student or a hobbyist, it is a real number, and the community editions plus VS Code cover a lot. Do not steal it. Do not pretend All Products Pack is a moral failing if the company pays. Do not pay it yourself to look serious if you live in Go and YAML.
VS Code is free and not free. The editor is free. The Microsoft account gravity, the telemetry arguments, the marketplace you now depend on — those have a cost you pay in attention. If that bothers you, VSCodium exists and some extensions will not. Be an adult about the trade. I use the Microsoft build at work because Remote-SSH and the default JS/TS stack are the job. I do not need to like every incentive to use the tool.
Neovim is free and expensive. RAM and CPU are cheap on it. Your time is not. A config that takes a weekend every quarter is a subscription you pay in evenings. If you enjoy it, that is a hobby. If you do not, it is a leak. I have a short plugin list on purpose. When friends send me their 200-plugin setups I see an IDE with worse support.
Laptops matter. JetBrains on 8GB is a personality test I will not take. VS Code is fine until the extensions eat the process. Neovim will run on the machine you found in a drawer. If you are on a thin client or a 2019 ultrabook, that is data. Put it in the decision.

Agents, pairing, and the social layer
In 2026 the daily driver is also where the agent lives. VS Code’s loop is the most finished for “edit, run, apply.” JetBrains is catching up in the stacks it already owns. Neovim’s loop is a plugin away from being great and a plugin away from being broken. I do not pick a daily driver only for the agent. I do notice when the agent cannot see the test runner I already configured.
Pairing is a veto. If you pair three times a week, the daily driver should be the one the other person can sit down at. That is usually VS Code. Sometimes it is JetBrains in a Java shop. Rarely is it your Neovim rice, unless the other person already lives there. You can keep modal keys inside the shared tool. You cannot keep a private religion and call it collaboration.
Onboarding is the same veto at a slower speed. A team with no standard will grow three standards and a Slack channel named #editor-help. Pick a default for the repo — a .vscode folder, an .idea run config, a Dev Container — and let people deviate after they can run the tests. Deviation is earned. It is not a day-one right.
A boring matrix
I write four lines:
- What language ate the hours?
- How often did I need a real debugger?
- How often did I pair or onboard?
- How often was I on a remote tty?
Mostly one language I know, rare debugger, rare pairing, lots of SSH: Neovim. Mixed web, containers, pairing, agents: VS Code. JVM/.NET/heavy debugger, company pays, pairing in that stack: JetBrains. Two yeses in different columns: two tools, one default.
If the matrix is a tie, pick the one your teammates already open. Ties should resolve toward the group. You can be interesting on the weekend. The goal is a morning that starts in the code, not in a settings sync dialog.
What I would tell you this quarter
Do not migrate for a blog post. Migrate because a week of work hurt in the current tool: the indexer never finished, the debugger was a toy, the remote story was pain, the new hire lost a day. Then migrate one repo, not your identity. Keep the old tool for a month. You will go back once. That is information.
Learn the portable bits in all three: jump to definition, rename, test under cursor, a debugger you will launch, and the Vim motions if you like them. Those travel. Themes do not. Plugin counts do not. A status line with a battery widget does not.
I use all three in a given season. I do not owe any of them a personality. The daily driver is the one that disappears into the gesture. If you are still talking about it at lunch, you picked a hobby. That can be fine. Call it a hobby. Then open the tool that ships the ticket.
If you want a single default and you refuse to read the rest: VS Code. It is the least wrong shared answer in 2026 for mixed teams and mixed languages. If you want a single default and you live in a JetBrains language, buy the IDE and map your keys. If you want a single default and you are mostly alone on remote boxes, Neovim is enough and you already knew that. The religion starts when you tell other people their default is a character flaw. I am out of that argument. The work is not a brand. I have tickets.