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!
Yeah! And both of us are here!
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.
I love eMacs and hope to return to it someday as my primary IDE, but I would never call it lightweight.
But you can fool yourself into believing that by running it as a service and buying enough ram that you don't need to check its resource consumption!
Compared to many things, I'd call it pretty lightweight with the right setup.
I know that some people complain about multi-second startup times or longer, but that's usually due to their config.
In a quick test of spinning up new instances on my machine in graphical vs. terminal mode (
emacs -nw) and with my config vs. pure vanilla (emacs -Q), the startup times (M-x emacs-init-time) with a warm disk cache and the initial resident memory usage from the best of eight runs each are:And of course, it's nearly instantaneous if you're just attaching to an already existing instance running a server (
emacsclient).For a fun comparison, going to my W11 work laptop and starting up Notepad, the task manager reports 40MB of memory used. So we're talking approximately two Notepad instances worth of memory for Emacs here.
I haven't used it as my primary for several years. When I was, it would occasionally max out my ram. I guess it's possible that my setup was odd, but I didn't do much beyond vanilla spacemacs.
Eventually Mallocs All Core Storage.
The last bit is fair. You can treat it like fancy notepad. Especially if you get some casual mode bindings going. I came into it from vim/kakoune, I wanted to make it do modal things, which immediately makes everything 10x more complicated than it has to be, but that was self-inflicted.
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.
I dabbled with nvim for a while, but then I tried Helix and it pretty much solidified itself in my "great out of the box experience" toolbox along with Fish shell and Starship as a prompt.
All can be adjusted with configs, but are mostly pretty good as-is.
Were you using regular Vim or Neovim? I feel like Nvim nowadays provides a pretty out of the box LSP config experience
I used Neovim for the last few years (after using Vim pretty exclusively since college, so over 20 years ago). For me the big win for Helix is I'm happy with the experience straight out of the box. With Vim and Neovim I had to install and manage all kinds of plugins, configs for those plugins, and configs for the editor itself to get it into a pleasant state--everything always felt like a huge mess (with Neovim being slightly better, but I'm not a huge fan of using Lisp as a config language). With Helix I'm down to maybe 20 lines of config, and could use it perfectly happily with no config at all. Huge breath of fresh air.
I have all my vim plugins in my own repository that I just put into whatever it is now, ~/.vimrc and a bunch of related directories. I really hated the direction vim plugins took a few years ago (probably 15+ years ago now haha) where they started suggesting you use a plugin manager of some sort to download the .vim files from github and the like to make things easy. It is easier at first but creates a long term problem when repos change or plugins do things you don't like, and encourages a rat's nest of dependencies. I prefer to keep things mostly vanilla and where it isn't vanilla, the plugins are under my own control. I think I may have become one of those grumpy old Linux sysadmin types...
Not to the degree of Helix. You can just go
hx --health <language>and it'll tell you exactly what you're missing. Usually it's just a matter of installing the default LSP package and it'll immediately start working.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
I switched from Jetbrains to vscode. The way I see it, folks who have never used Jetbrains at all and love vscode see it as the best thing they’ve ever used, which it likely is. So they’re happy with it.
Jetbrains has also tucked away the fact that there is a community edition of IntelliJ so it’s not obvious, and I’m unclear if there is one or not for Webstorm. The community edition of IntelliJ doesn’t support npm.
Zed is fantastic. It was my IDE of choice until work started encouraging us to try out AI-focused IDEs on their dime. Zed's AI agent support wasn't there at the time, so I went all-in on Cursor. But would love to make the transition back to Zed in the near future.
Ironic thing is that Zed has been the first IDE to boast AI powered features, if I remember correctly - but it has been surpassed by several "late" entrants in the meantime. Still, it is by far the nicest and snappiest IDE I have tried in the last decade and I'm loving it. It's native and that has its implications. Plus, it has been opensourced.
Installed Zed yesterday in response to this comment and it's pretty slick. I've disabled the AI features and will see how it goes.
At home, most of what I do for homelab stuff is use WinSCP to open up config files, etc in a local code editor. So far it's working great for that. I might poke at the remote functionality later to see if I can come up with a more efficient workflow (though I'd like to do infrastructure as code with everything in git repos at some point).
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.
Also in the Sublime camp. I started using it ~15 years ago (where did time go?) and haven't had any reason to change.
Another Sublime user here, having come from its spiritual ancestor TextMate many years ago. I use Xcode and Android Studio for the relevant platforms and Sublime for everything else.
Yeah I like Sublime Text being native (so sick of Electron-based things) and have liked its speed / perceived speed and simplicity so much that a number of years back I decided to buy it (after years of using it for free with the nag screen), even though I mostly use it for very simple stuff. I've never found anything else I like using more.
It has a lot of features I enjoy (that I'm sure are available in many other tools) that really streamline things I'm working on (find/replace in all open files, multi-line cursors, etc)
I have used VSCode in some situations where I could not have access to Sublime and it was okay. Although I will say they have done a decent amount of work to make it performant for an electron app it still feels noticeably bloated compared to something like Sublime. I have looked at others, but refuse to use any that build in AI access
(No need for anyone to suggest alternatives, I've tried a billion of them and am happy with my paid product. While I love open-source stuff, I don't mind supporting non-open-source things if they're well-made)
Ah yea Sublime text. I like that I can use my license on my work PC which is Windows, and also on what little of KDE I still use, and also on Mac OS. Top software.
Do you want suggestions or do you want to hear what editors we use? Because I use Vim or other Vi clones for everything text editing related, which answers your question, but per your instruction I won't suggest it :)
I've written about it here before:
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.
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.
Visual Studio just feels dated to me, might be old trauma from the C++ age :)
It's Rider all the way for me for C# stuff when Someone Else is paying for the license.
Okay, Rider is good but yeah someone else has to be footing that bill.
Microsoft is in their "Extend" phase with the VS Code.
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've just spun up Zed on my x86_64 machine, and played a little with the customisation options, and wow. This might be exactly what I was looking for! I've also installed it on the arm64 machine and it looks to run just fine :)
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.
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.
I should really give that vim extension a go. At work we're also using it with WSL, thank goodness. LSPs and such almost seem to get in the way as much as they help, but that's probably just because I never really got used to them.
If you want a quick start into your Neovim journey, you can try LazyVim for a while until you learn stuff and feel more confident to write your own lighter config later.
It depends on context really:
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.
I'm trying to think of a scenario where this would occur... I'm on Webstorm+MacOS too.
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.)
Oh! I use Zed, which I think fits your requirements? It does have a bunch of AI features, but I don't use them, and they're very unobtrusive. It's not Electron — the entire rendering stack is built from scratch in Rust, so it's very fast (I didn't think this was going to be a selling point for me, but actually it's enough faster than VS Code that I find it a little painful going back to VS Code now). It also has very good LSP support, etc.
The development is also very active and they're pretty responsive to issues (most of the time)
When I log into my Xenix system with my 110 baud teletype, both vi and Emacs are just too damn slow. They print useless messages like, 'C-h for help' and '"foo" File is read only'. So I use the editor that doesn't waste my VALUABLE time.
Ed, man! !man ed
Computer Scientists love ed, not just because it comes first alphabetically, but because it's the standard. Everyone else loves ed because it's ED!
"Ed is the standard text editor."
And ed doesn't waste space on my Timex Sinclair. Just look:
Of course, on the system I administrate, vi is symlinked to ed. Emacs has been replaced by a shell script which 1) Generates a syslog message at level LOG_EMERG; 2) reduces the user's disk quota by 100K; and 3) RUNS ED!!!!!!
"Ed is the standard text editor."
Let's look at a typical novice's session with the mighty ed:
Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.
"Ed is the standard text editor."
Ed, the greatest WYGIWYG editor of all.
ED IS THE TRUE PATH TO NIRVANA! ED HAS BEEN THE CHOICE OF EDUCATED AND IGNORANT ALIKE FOR CENTURIES! ED WILL NOT CORRUPT YOUR PRECIOUS BODILY FLUIDS!! ED IS THE STANDARD TEXT EDITOR! ED MAKES THE SUN SHINE AND THE BIRDS SING AND THE GRASS GREEN!!
When I use an editor, I don't want eight extra KILOBYTES of worthless help screens and cursor positioning code! I just want an EDitor!! Not a "viitor". Not a "emacsitor". Those aren't even WORDS!!!! ED! ED! ED IS THE STANDARD!!! TEXT EDITOR.
When IBM, in its ever-present omnipotence, needed to base their "edlin" on a UNIX standard, did they mimic vi? No. Emacs? Surely you jest. They chose the most karmic editor of all. The standard.
Ed is for those who can remember what they are working on. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!!
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.
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.
Flow looks very interesting- though as you say, perhaps not ready for prime-time yet. I'll keep an eye on it, thanks!
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.
Eclipse for Java, VS for C#.. they both ok I think? Both have great and not-so great features.
I'm still invested in the Jetbrains ecosystem (All products pack).
Obviously it's not perfect, and can be slow at times, but it's mostly a "batteries included" type of software, and I really enjoy using the exact same shortcuts through all their apps (PyCharm, Webstorm, Rider, AndroidStudio, DataGrip,...)
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
doom emacs which i poke to my will. though org-roam lecture notes form the majority of my writing in it these days…
At work, my new company, I believe, mandates VS Code, with a bunch of internally developed plugins to make development easier. Everything from pulling from our repos, making commits, pushing code, rebasing, etc. is all done from within our plugins. I know most devs will cringe at this but it's honestly fairly nice.
I also use VS Code personally for my random projects and scripts. I've tried Emacs and Vim but honestly, most of the time the things I'm coding are so small that I spend more time learning/re-learning the various keyboard shortcuts and commands than I do actually coding so I tend not to use those editors.
My answer is very boring: I use VS Code for just about everything. While it isn't the best tool for just about anything (maybe TypeScript?), it's reasonably good for just about everything. Not having to learn new workflows is preferable to me over having the theoretically best workflow.
VS Code has also has some features that are now critically important to my workflows. I use either dev containers or ssh in almost every coding session and I like that it generally "just works". I have a strange aversion toward installing development software onto non-disposable machines and VS Code does well supporting that mentality.
I just switched over to Zed from Cursor. For a pre-1.0 app it’s very well made. I especially like how when switching themes from the command palette they instantly apply so you can quickly compare. But the main benefit is that the whole thing is native code and GPU accelerated.
I use Kate, the default text editor for KDE. I settled on it because I wanted something that was lighter than vscode and could integrate well with the rest of my system. I'm not really interested in using text-based editors like neovim since I only program as a hobby. If I stuck with my IT path that I abandoned years ago, I'd probably be using neovim.
Just checking into this thread one last time to thank everybody for their suggestions, including the Vim users in the audience. I really appreciate all of your perspectives.
I've been using Zed now for about a week and after a couple of days configuring it to my liking- configuration which is now included in my dotfiles- I'm very happy with it! It ticks all of the boxes, and runs so smoothly (except when chugging through Java language server processing, but whenever is that not the case?). Once again, thanks :).
VS Code (normal programming) & SSSMS (db) at work, VSCodium at home. Sometimes Visual Studio for some SSIS or if I need to tinker with an SSRS report. For simple text editing Ill just use notepad++, I have micro or something installed for the command line, but I find it's actually just as fast to browse to a folder and double click a file.
I don't see myself as switching away from vs code until there is a competitor that has the rich extensions that vscode has, especially with git.
micro for everything except for gdscript then I use godot's built in editor
Rider and other Jetbrains tooling when the company pays for them. DataGrip etc. are very very good. But not "I'll pay hundreds of euros of my own money" -good.
VSCode for when I need something lighter, and I like the Git workflow on it a lot better than in Rider
Helix when I need to edit something over SSH or just quickly change a single file locally.
Vim for small projects, server configs, and one-off edits. vscode for larger ones or when I teach less technical students. (Our department mandates a single ide for general instructional use in freshmen courses, and we mostly agreed on vscode.)
As much as I like it, I am not skilled or flexible enough to learn to use vim as full ide.