What code editor / IDE do you use (2025)?
For a while now I have used VSCodium- which is just Microsoft's VSCode, but with as much of the telemetry stripped out (or rather, not built-in in the first place) as possible- but I've found myself with a desire to move away from Electron-based apps for a number of reasons.
Primarily, I'm ideologically opposed to the trend in which everything is an Electron-based web app packaged as a "desktop application", but on a slightly more functional note, Electron seems to behave poorly in Wayland contexts, especially on Arm64 devices.
In terms of feature set, I'm not too interested in complexity. Something open-source, relatively clean / light-weight, capable of providing a project overview and a number of tabbed or vsplit / hsplit buffers. Something with comprehensive syntax highlighting and some form of language server interface. Something theme-able, and good to look at, with relatively intuitive or well-established keyboard shortcuts. I don't much care for integrated terminals, extensive debugging tooling, or any form of built-in AI assistant.
I have been trying out Micro, with a set of plugins which allow for a project overview, a language server, and a number of other QOL improvements, but it has a list of breaking issues that will likely not be solved for years given the speed at which pull-requests are addressed, if at all. Even so- it hits most of the marks that I find most important to me.
But I'm also interested in what other people use; what other programmers find matter to them. So what text editors, or IDEs do you swear by (and please don't suggest VIM- it's overwhelming ;])?
Emacs for all the things (scala/rust/nix, mostly)! This doesn't fit your needs at all, I just wanted to rep.
There are dozens of us! Dozens!
I dunno; I think it checks off a number of the mentioned asks:
That said, I've been using it for decades now and it's my "forever editor" at this point, so I'll freely admit that I'm somewhat biased. :-)
There was mention of not suggesting VIM since it's overwhelming. But at least for Emacs, I got started running it way-back-when with no config. Vanilla Emacs gives you a menubar to explore and a simple toolbar with buttons for loading and saving files, cut/copy/paste, and search. You can navigate with all the cursor keys as expected or point-and-click with the mouse and start typing right away. Basically, when I started I was able to treat Emacs pretty much like a fancy Notepad until I gradually started to internalize the keybinds, learn the deeper functionality (there's an ocean in there), and start heavily customizing it.
At work, Visual Studio. It is all C# and you can try to convince me as much as you want that [pick an editor] is better but I am not buying it.
At home I am in the same boat as you, Code OSS. Doesn't matter the language. Well, it was, until like April of this year when a bunch of the Microsoft plugins (especially C/C++) got removed. There are workarounds but those are going to get more and more annoying to deal with as time goes on.
I have not had enough time over the summer to work on projects at home enough to look for alternatives but I am interested in what others are using!
Yep- the way Microsoft restricts installation of a set of plugins which have become the "standard" for their functionality, if you're using a client not distributed by them is disgusting. My solution was to fetch the plugin files using the undocumented marketplace API and push them to VSCodium using the local commandline tooling, but it's a pain, even with a script which automates the process. On top of that, so many of the plugins that provide amounts of language-server capability are so buggy. For the last month or so I've been having massive issues with the Python plugins, and the C++ language plugins have filled my cache with ~20GB of nothing, despite the fact that I rarely program C++ these days.
IntelliJ IDEA, old UI
My understanding is, although VSCode is electron, it’s well-optimized so still performs rather well. The problem with electron apps isn’t just that they bundle Chromium, but most are repackaged websites not specifically designed for desktop, and don’t follow basic performance tips.
But if VSCode is too slow (in which case IntelliJ will also be slow), I’ve been hearing praise for this upcoming IDE that is especially fast: Zed
Here's some stuff I use:
I think if you're looking for something that offers similar functionality to vscode but isn't electron you could look at zed. No clue how supported it is on non x86-64 devices, though. It has some AI features baked in which I'm not a huge fan of, but they can all be disabled with just 1 option so you can get rid of them if that's not your thing
I'm very much a hobbyist programmer (and not a very good one to be frank), but I do my programming in Emacs these days, mostly because I happen to already do everything else in Emacs. My config is essentially vanilla Emacs with a few non-programming add-ons, themes, basic stuff. Never bothered setting up LSP or anything fancy like that. Emacs can provide all the features you mention in your post (except for "well-established keyboard shortcuts", in Emacs you cut+paste with Ctrl+W Ctrl+Y but they're called kill+yank because uhhhh history - Those aren't even the weirdest ones), but if you find Vim overwhelming I can't see Emacs being much better!
When nobody's looking I might shamefully open VSCodium to quickly edit a file, mostly when I'm using Windows since Emacs is a pain to run on Windows either natively or through WSL.
I'm using Helix now, after decades of Vim (I switched because I got sick of messing with LSP configs and my life instantly improved). Mostly I code C# and you can try to convince me as much as you want that VS Code is better but I am not buying it.
Also on Helix. I configure it a little bit but the OOBE is so good that it's only after some years that I've picked up little bits.
Were you using regular Vim or Neovim? I feel like Nvim nowadays provides a pretty out of the box LSP config experience
If you want to be even more overwhelmed you can try neovim ;)
It can be pretty finnicky at times on my setup (lots of weird stuff I have to do to make it work at my job) but I like it a lot. It runs on my personal server at work within a tmux session, so I can always start a build without worrying about my laptop going off the network or pausing the build while it sleeps.
Occasionally I'll open up IntelliJ when nvim isn't playing nice and I just need to get some work done, but I can feel myself working slower and generally fighting the environment a lot more. Plus its integrated terminal is absolutely awful. I've always returned to nvim as quickly as I could in those cases.
Another neovimmer checking in. At work folks mainly use VSCode, and I'll use it sometimes, but it doesn't seem worth the hassle to configure, with the possible exception of interactive debugging.
I use VSCode with the vim extension on my work computer, but on my home computer for (fairly limited) use, it’s neovim all the way.
I have it set up with WSL :)
I mainly just use it for plaintextaccounting, not programming though…I’m not sure I could go back to regularly programming without the code hints etc I get from VS code. Though I do have some macros and shortcuts setup with neovim (but I don’t recall the exact plugin) to make repeated blocks easier for the budgeting I do with it, so I’m sure I could track down an extension for code hints.
I just wish Godot supported vim better, it might get me to actually make something.
Sublime Text has served me well for the past 7-ish years. I used it without a license for 4 of those years, and finally bought a license 3 years ago just because I wanted to support the dev(s). A license isn't required, there's just a pop-up that comes up once every few times you open it. I honestly don't use any special features it offers, but I do like that it's not Electron (like you mentioned) and the plugin system offers many of the same options (or at least, options with the same functionality) as the VSCode ecosystem. The only downside is that it's not open-source, but it's one of the few times where I make an exception to my preference for FOSS options.
Another option that might work for you is Lite XL. I used it for a while, but then I installed a Vim plugin so I could use my muscle memory again and the two just don't mix. The built-in keyboard shortcuts in Lite XL interfere with Vim shortcuts and commands, and I just got annoyed before too long. Since you mentioned not wanting to use Vim, you might have more luck with it.
Ok, you asked not to suggest vim, so I'm not gonna nerd out about Neovim here (though it fits basically all of your criteria). But I still REALLY suggest that whatever editor you're using, you try vim bindings in there for a while. There is a learning curve, but once you get the hang of it it can really make your life much better.
About a million different ones for different requirements, it feels like.
Yes, I hate it.
As a teacher, I'm forced to use the tools that they give the students, and that is currently codepad. Codepad is actually a pretty good educational tool, but it's buggy; when share coding, it will do it's automatic code analysis on broken intermediary text that is different than the actual code I'm reading on the screen, which means that we'll get underlines showing errors that do not exist. The only way to get rid of it is to have both people working close out of the project and reload them. If one stays on, the bad version remains. Other than that it's fairly decent. It's not "full featured" by a long shot, but it's featured enough that I'm not pulling my hair out. Plus it has nice server-side features like allowing access to a shell, so you can pull up a REPL for some live coding examples. It's also completely free and I have no idea who is paying for it.
For my video game project that has been on hiatus for over a year and is probably about to be completely scrapped, I use VS Code. There is one simple reason why: it integrates LÖVE debugging.
For everything else I have an old version of Panic's Nova. "Everything else" in this context mainly means working on some basic web and python projects. Nova offers something that most other editors lack; simplicity and sensible defaults. Command-R to run your project was literally all it took for me love it, but it also offers the single snappiest text editing I've seen on any IDE. If I'm working on text and there's even a split second of lag it bugs me, and I haven't had that happen with Nova yet. But it's also pretty niche; the main reason why I didn't use it for my game project was that it didn't have any extension for debugging with LÖVE.
I am also using using Eclipse. It's a requirement for my university class. I'm doing everything I can to avoid learning all of the advanced features and when I'm done it's getting removed from the computer. Eclipse really isn't bad, it's just so different from everything else. It's basically the exact opposite ethos from Nova; it has all the batteries included and then some.
Because I hate myself and have been toying with the idea of rewriting my entire game engine with a different framework (libGDX in this case), I just downloaded IntelliJ IDEA Community Edition. I used it previously when I first started to learn Java and it's changed so much. It was probably the actual reason why I fell in love with the Java language; it has a way of quietly nudging you in the right direction, and making looking things up really simple and straightforward so you don't have to have the entire framework's implementation details in your head. That being said, I think the chances of me moving forward with the idea of writing a game in Java are pretty slim, so I'll likely be deleting it soon enough.
Vs code/rider/VS/helix.
All mostly used for F# which is dotnet with some SQL/python/JS here or there.
Helix, to me, is very interesting because it’s vimesque with what I feel are some very sane decisions on defaults and workflows (select always before effect).
That said I’m not good enough with it yet that I feel comfortable using it for larger projects and I do feel like there’s still several cases where VS Code is still much easier. Especially when I start interacting with Databases.
Also helps that code with ionide has a “send to repl” command for quick iteration. You can do it in helix but it’s a little more manual.
As always when getting into the Linux side of things I’m not sure where the line is between “think about this differently” and the more unfortunate uhhh portions of the Linux mindset which feels hostile to change
It depends on context really:
doom emacs which i poke to my will. though org-roam lecture notes form the majority of my writing in it these days…
I really wanted to use a jetbrains ide (in my case webstorm). I love a lot about it. But they refuse to correctly follow the macOS style guide, and the issue to fix this has been open for years without any real response. If you aren’t aware, on macOS, the first click on a window that isn’t focused shouldn’t perform any significant actions. This makes it so that if you have just a corner of a window sticking out, you can safely click it to show that window without changing anything. I use this feature, and window stacking, extensively. Some apps are better than others, but most are okay. In jetbrains, everything is clickable when out of focus. And an ide is so button dense that almost every pixel of space does something. I would often find myself with a few square inches of a webstorm window poking out and still have to show the menu bar to focus it. It doesn’t seem like a huge issue, but it was very disruptive to my workflow.
So for now I am sticking with vs code forks. Currently I pay for and use cursor, which is pretty dang useful. Far more useful than a ChatGPT or Gemini subscription.
Outside of work I flip flop between OSS code and Zed. You can disable all AI integration in Zed with a single toggle in the settings.
Another editor I’ve got my eye on is flow. It’s a terminal text editor that’s got vscode-ish key bindings. There’s been steady progress in its development but it’s not quite ready for me personally.
Most of my time I'm in the terminal, just hacking together a little bit of code for like a bash script, or a bit of JavaScript, Go, or Python that's going to be run in the terminal. I checked a lot of terminal-based editors including neovim | Github and emacs | Github mirror and I found the editor got in the way of accomplishing what I set out to do. I looked around and found that Helix | Github and AMP | Github are getting good, but really overkill for what I'm doing.
So… like you I also almost exclusively use micro | Github with a few of its little plugins installed, and a decent color scheme I like (nord). It honestly does just exactly what I need to it do, no more, no less.
(I know that others have mentioned many of these previously and I probably don't need to link them, but I feel compelled to get folks as far from VSCode | Github as fast as possible. It now bills itself as "The open source AI code editor" and that just gives me the ick.)
JetBrains at work as we're a PHP shop and nothing comes close for PHP/Laravel. Helix for personal coding, love the terminal and hate big corps.
I've been using Cursor, which is basically just VS Code with an LLM integration that I find useful at times. For quick stuff I use vim.