August 18th, 2024

Leaving Neovim for Zed

Steve Simkins transitioned from Neovim to Zed, citing performance issues with larger codebases. Zed's out-of-the-box features and speed improved his productivity, while its Vim mode offers familiar keybindings.

Read original articleLink Icon
CuriosityFrustrationOptimism
Leaving Neovim for Zed

Steve Simkins shares his transition from Neovim to Zed, detailing his experiences with various text editors throughout his programming journey. Initially starting with Atom and later trying VSCode, Simkins found Neovim to be a significant productivity booster due to its speed and customization options. However, as he began working with larger codebases, Neovim's performance issues and the time spent on configuration led him to reconsider his choice. After hearing about Zed, he decided to give it another try and has since found it to be a reliable and efficient tool. Zed's out-of-the-box functionality, including seamless LSP integration, auto-completion, and Git features, impressed him, contrasting with the extensive setup required in Neovim. He appreciates Zed's speed and its built-in Vim mode, which allows for familiar keybindings and motions. While acknowledging that Zed is not a complete replacement for Neovim, especially for quick terminal edits, he believes it excels for longer coding sessions. Simkins encourages developers to explore different tools, as they may discover more efficient workflows.

- Simkins transitioned from Neovim to Zed due to performance issues with larger codebases.

- Zed offers out-of-the-box features like LSP integration and Git support, reducing setup time.

- The speed of Zed has significantly improved Simkins' productivity.

- Zed's Vim mode allows for familiar keybindings, enhancing the experience for former Neovim users.

- Simkins advocates for experimenting with different developer tools to find the best fit.

AI: What people are saying
The discussion around Steve Simkins' transition from Neovim to Zed reveals several common themes and opinions about text editors.
  • Many users appreciate Zed's speed and out-of-the-box features, but express concerns about its stability and missing core functionalities.
  • Several commenters highlight frustrations with Zed's focus on AI and collaboration features at the expense of basic editing capabilities.
  • Users share their experiences with other editors like Vim, Neovim, and Sublime Text, often comparing their strengths and weaknesses.
  • There is a notable interest in the potential of Zed, with many hoping for improvements and stability in future updates.
  • Concerns about privacy and automatic updates in Zed are raised, indicating a desire for more user control over the editor's features.
Link Icon 63 comments
By @kstenerud - 5 months
> I was already a keyboard maximalist from previous jobs where I learned speed = productivity

I've never understood this. In over 30 years in the industry, I've not once held a job where my keyboard speed had a noticeable effect on my productivity. Even when I had to type one-handed for a month, my productivity was unchanged.

The average developer averages 10 lines of finished code per day. And even with a raw 10x that amount to account for variance, changes, debugging etc, you'd be at 12 lines PER HOUR. Being generous at a full 80 chars per line, you have a maximum of 1000 keypresses per hour, or an average of one every 3 seconds. Even doubling your typing speed or keyboard response time would have no discernible effect.

90% of software development happens in the mind. The small amount of time spent actually writing it out seems kinda silly to optimize for.

By @alberth - 5 months
I initially loved Zed.

But as their focus has shifted to building Collaboration & AI features, and still haven’t yet nailed just being a good/great base editor, its become less useful to me.

I still have a lot of hope for Zed.

But for the time being, I’ve switched back to my old editor & IDE … and I’ll try Zed again at a much later date.

By @p4bl0 - 5 months
A lot of editors are being discussed here but I see nobody has mentioned Kate (KDE's Advanced Text Editor) [1] in the conversation yet, so I'm doing it. Kate is a very mature and capable editor, and even if I only use it on Linux I'm glad to know that it is also available on macOS and Windows. It natively supports LSP and has much, much more to offer in terms of project management, support for build system, support for working with Git (it's actually the only Git GUI that I found to be usable), SQL databases integration, and of course, advanced editing features. I started using it a few years back after a very long text editor journey: on Windows a bit more than 20 years ago: Notepad, HAPedit, then Notepad++ ; then I got a Mac and used TextMate (which introduced me to powerful text editors) for a few years ; then I switched to Linux ~15 years ago and used Gedit for a few months before diving head deep into Emacs and stayed fully there for… 12+ years (I actually still use it from time to time, but it's less and less the case and most importantly I stopped doing everything in it including my email, social networking, IRC, etc.) ; and now for a few years I've mainly been using Kate (and Kwrite for quick edits + Nano [2] in the terminal or on remote hosts). I even contributed a few features [3] to the project, KDE developers are very welcoming!

[1] https://kate-editor.org/

[2] I must say here too that Nano is actually an underappreciated gem. It supports a lot more features than people generally imagine: syntax hilighting, line numbering, auto-indent, multi buffers, mouse support, keyboard macros, … it's actually a decent simple code editor!

[3] https://kate-editor.org/post/2022/2022-08-24-kate-new-featur...

By @Voklen - 5 months
For me this feels similar to why I use Helix[1]. I used to use VSCodium and had tried to switch to Vim or Neovim multiple times but didn't manage because of all the plugin configuration to be able to program. Then I saw an HN post about Helix, started it up and it just worked and so haven't used anything else since.

I find the Helix keybindings easier to learn because you see what text will be affected by any operation before you do it. And by using Helix I've found I've been able to pick up Vim keybindings as well so can use it on a server.

I think it would help if it didn't have such a jarring default colour scheme though.

[1] https://helix-editor.com/

By @bww - 5 months
I’ve also recently switched (largely) from Vim to Zed and I also think that Zed is in many ways great.

At the same time it’s been pretty frustrating to use an editor that is spending so much time building AI integrations, REPLs, and so fourth when basic things like cut and paste and common Vim motions still have so many bugs.

I’d love to see them prioritize getting the basics solid first.

By @poetril - 5 months
I’m actually in the opposite camp, I had left VSCode for Zed about 6 months ago and used it exclusively at work/personal projects. I’ve customized it extensively, and loved its approach to Vim integration. But in the last two weeks I’ve made the switch to Neovim (using a customized LazyVim [0] setup). I really like Zed but as others have pointed out they are not prioritizing features around REPL’s, AI, and collaboration while many core features are lacking. Vim Cut/Copy and paste being bugged, and html tags not closing drove me crazy over time.

I think Zed is wonderful, and would perhaps go back to it after it matures a bit. For what’s its worth the friction going from Zed -> Neo vim was quite seamless, and I’d expect going the other way would as well.

0: http://www.lazyvim.org/

By @WuxiFingerHold - 5 months
> Every now and then I would update a plugin in Neovim and everything would break, and I would have to spend time fixing it instead of getting work done.

This is true, but only if you're not using one of the ready made distributions. I didn't switch to NeoVim until I discovered LazyVim and this amazing guide https://lazyvim-ambitious-devs.phillips.codes/.

That changed everything. I just use LazyVim out of the box, as if it was a Jetbrains IDE. No config hassle, no issues with updates. It just works.

Regarding Zed:

It's a small niche they're trying to fill in a very competitive market. Currently they have the advantages of being the current cool thing. But that's not enough in the long run. If I would knew some killer feature, I'd go ahead and write it here. But that's the thing, I can't think of any. For simple, mainstream usage, VS Code is there. Ulimate IDE features: JetBrains IDEs. Ultimate productivity: LazyVim (or other NeoVim setups), ootb modal editing: Helix.

By @keb_ - 5 months
Echoing similar sentiments that I'm optimistic for Zed to become more polished and stable.

Till then, Sublime Text 4 is still the best non-terminal text editor I've ever used and I continue to daily drive it. Sure its paid and non-FOSS, but its incredibly performant on Linux and Windows and its LSP extension + Sublime Merge fill the gap left by VSCode for me. Well worth the price tag IMO.

By @riz_ - 5 months
I'm wondering if the author ever tried one of the many neovim distributions, which solve a lot of the problem they're describing. All of the plugins and integrations necessary are already set up to create a nice fully featured IDE-style environment. E.g. LazyVim, AstroVim or NvChad
By @kristiandupont - 5 months
Over the summer I got an interest in Kakoune and Helix and discovered a number of extensions for VSCode that enable modal editing(1), but not VIM-style per default. I got excited about this and ended up writing my own extension instead.

At this point, it supports most of the VIM subset that I care about, and I have added a number of new motions and modes that do clever things based on the AST. I am kicking myself for not doing this sooner and I think I need to write up a blog post about it. It's surprisingly easy.

1. e.g. https://marketplace.visualstudio.com/items?itemName=DCsunset...

By @oslem - 5 months
I really enjoy using Zed whenever I can. It’s incredibly snappy and has a clean UI. I agree with some of the other sentiments in this thread that I wish that the developers would focus more on some core IDE features. If Zed had better Git integration and remote support, I could switch over to it full time.
By @twp - 5 months
If you want true Neovim in VSCode check out

  https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim
You get a real, actual VIM (no half-assed bindings), and all the bells and whistles that come with VSCode.
By @icar - 5 months
"It just works" is precisely why I use Jetbrains products. I'm amazed they are not that common in many developer communities. They are amazing tools.
By @natrys - 5 months
I don't really care about evangelising anything, but this bit:

> Every now and then I would update a plugin in Neovim and everything would break, and I would have to spend time fixing it instead of getting work done.

Would be a problem anywhere there is a plugin system. Just don't go around updating kitchen sink without having the ability to rollback. Full on version controlling 3rd party plugins could be annoying (unless you use a plugin manager specifically with that support e.g. straight.el or elpaca in Emacs), but simply taking a dumb snapshot of plugin directory may also do the trick.

By @mhfs - 5 months
Am I the only one scratching my head about how Zed will eventually monetize their business to satisfy the investors behind their $12M investment?
By @jgb1984 - 5 months
Most of the negatives mentioned (fragility, bugs, plugins breaking often) are specific to neovim. It's one of the reasons why I am and will always keep using vim instead of neovim. Vim is a much more mature ecosystem, less chasing the newest "plugin du jour", my vimrc is stable, based on a few dozen plugins which are feature complete and rock solid stable.
By @jasoneckert - 5 months
I explored Zed on macOS when it was posted here previously, and my impression was that it was a fast and fully-featured editor.

However, it's not as ubiquitous on *nix systems as editors such as vi/vim. And for those of us who work with various infrastructures and deployment constraints, it's much easier to focus our efforts on an editor that is also ubiquitous. And vi/vim fits that mould.

In other words, while Zed is a vi-able alternative, I doubt most vi/vim users will switch to it exclusively.

By @koiueo - 5 months
It was a great sales pitch until the Linux and Apple comparison.

I can't take seriously someone, who says that Apple's stuff runs smoother (unless we are talking about useless animations).

By @thomascountz - 5 months
My dealbreaker with Zed is that it takes away my autonomy and agency.

1. Zed downloads binaries without user input as soon as you open a file; think LSPs and linters. This is a hot topic and has been for a while.[0]

I would rather my editor break (or even better, fail gracefully and helpfully), than obscure what amounts to being a significant action that I believe warrants user involvement.

2. I can't tell what gets sent to Zed's servers.

I don't have time to audit all the code, but as an example, this PR, [Allow Al interactions to be proxied through Zed's server so you don't need an API key][1], has +3,628 -8,918 changes and even just by the title seems to suggest that using the Assistant feature may result in requests being sent to Zed's servers.

This is a dealbreaker for me because, not only is this not documented anywhere, it seems in contradiction to the EULA.

"User Content is transmitted from Your environment only if You collaborate with other Zed users by electing to share a project in the Editor. Once You share a project, Zed may transmit User Content consisting of file paths, file contents, and metadata regarding the code returned by language servers."[2] It doesn't mention if using the Assistant feature is part of the network based solution or that it's the same as "sharing a project," but I'm not an Editor-EULA lawyer.

Arguably, this is true is any open source project, though my stance is generally to be more alert to privacy concerns with software from newly-backed pre-profitable startups. I don't want to spend my rare editor-tweaking time on nonconfigurable privacy and security control workarounds.

Edit: As if on cue, another PR to seemingly default to sending data to zed.dev: https://github.com/zed-industries/zed/pull/16454

[0]: https://github.com/zed-industries/zed/issues/12589

[1]: https://github.com/zed-industries/zed/pull/7367

[2]: https://web.archive.org/web/20240718140959/https://zed.dev/e...

By @tecoholic - 5 months
I tried Zed just yesterday and sadly my experience wasn’t “just works”. It just works if you haven’t used any of the Neovim configs/distributions. But for someone who already uses LazyVim, LunarVim..etc., it’s kind of meeting the expectations.

The issue for me was with the Docker LSP. I have a codebase where a Dockerfile is a Jinja Template. Zed’s syntax highlighting broke at the first curly braces. Both my Doom EMacs and LazyVim seem to have no problem with it. I couldn’t work beyond that point.

By @zamalek - 5 months
There is one big issue with terminal editors that I keep running up against: single font size. One notable place where this is an issue is file listings, being able to have smaller proportional fonts makes a huge difference in usability.

I have switched to Zed, but it sadly shares more in common with vscode than it does vim. I believe the ideal text editor would bring a small amount of GUI to the general idea of one of the popular nvim distros (especially telescope).

By @llIIllIIllIIl - 5 months
Does Zed support remote/containers development now? It was the major blocker for me when i tried it, so i had to retreat back to VSCode. I’m not sure if programming is a social activity so their focus on collaboration is a little odd to me.
By @beginnings - 5 months
I started using Zed in the last month and I had a feeling it would end up taking a lot of Neovim users. Neovim gets a lot of users who need better performance than VSCode, like me, but the config is such a pain and there was a gap in the market for a blazingly fast GUI editor which Zed looks like filling.

Supermaven still has some issues on Zed, but apart from that its been rock solid and ive fully switched from Neovim.

By @commercialnix - 5 months
I'm still down to seriously consider Zed, but this is one of the most inorganic posts I have ever seen.
By @replete - 5 months
I tried out Zed and really like it, but its still lacking things like EditorConfig support, so project switching sucks. Has strong potential to replace vscode entirely if they don't get carried away with fancy features
By @RandomThoughts3 - 5 months
I’m going to somehow misuse this discussion to ask for the readership help about something: I don’t understand the appeal of VSCode or more exactly I don’t understand the appeal of the text editor propped with plugins to be a semi-IDE so I guess that would also include Neovim with plugins.

In my career, I have used text editors including vim which I still very much enjoy and both Eclipse and IntelliJ when I used to code in Java which I also enjoyed.

VSCode seems to me to be as slow than a full IDE - too slow to be a nice editor - while having less features and an inferior UI to a full IDE. I don’t get it. Is it because so many languages don’t have a good IDE so people have come to accept the subpar editor+plugin experience?

By @BaculumMeumEst - 5 months
You know you are a text editor enthusiast when you spend 60% of your time fiddling with your config, 30% of your time writing about it, and 10% of your time working on something useful/interesting. Just use VS Code.
By @bibanez - 5 months
I used Zed on Linux and liked it a lot... until I couldn't write a space in english layout (still worked on alternative layouts). Strange
By @djaouen - 5 months
I have a few default keybindings coming from Spacemacs/AstroNvim. In case anybody finds them useful, you can find them here: https://github.com/danieljaouen/dotfiles/blob/main/topics/ze...
By @konart - 5 months
>What normally required multiple plugins in Neovim is again ready out of the box with Zed, including feature like toggling Git Blame, viewing diffs, and gutter symbols showing the status of edited lines.

Pretty sure Gitsigns for neovim can do all mentioned (diffthis, blame line of file adnd obivously gutter symbols).

But if you need more you have Diffview and other plugins.

By @dominicrose - 5 months
There was a time when I was learning how to use Vim and I saw my boss use the mouse to do a simple copy and paste and there was kind of a disconnect between these two ways of using the computer. From my experience a good mouse is better than a power tool like Vim, not for copy/paste, but just because it can reach the whole screen very fast and it works with all software although limited in text terminals. Learning Vi(m) was still helpful because it's installed even on most docker images but that's not the "default" way of typing text. Most software accepts mouse double clicks or triple clicks and standard ways of using the keyboard (including use shift+ctrl+left and things like that), so that's how I like my IDE to work as well. Multi-cursor is great and it's good that I don't miss it outside of the IDE because it wouldn't be useful outside of it anyway.
By @smeg_it - 5 months
I'm using neovim with lazyvim. It's still not "easy" to keep up with e.g. I have plugins that interfere with other plugins, some crash. Part of that is that I have a bad habit of installing tons of plugins that "sound good" without learning them or where they fit exactly. I probably need to go one by one slowly.

I tried emacs but found the same issue with plugins. It's just hard to keep up and organize them, so far lazyvim is the easiest for me but not "easy".

I'll have to try zed if it's foss. I do wish that some "standardized" plugins would just be integrated into the base application or a new application like Neovim from vim. I don't know the history, so I'm not sure how it came about, but it does feel like there is some stagnation with some of the gnu/linux stuff.

By @__alias - 5 months
Has anyone made the transition from VS Code to NeoVim or Zed and succeeded / recommend it?

Years ago I saw a colleague operate as an absolute beast using VS Code with vim bindings and it was impressive to watch.

But I've never watched anyone code in vim/emacs etc and felt it's a more effective editor than vs code.

By @irusensei - 5 months
I tried leaving vim for Helix but turns out it's not curated at my employer's site so I'm back to using vim. Zed would be even worse considering it's a desktop app.

There is the option of using vscode but I'm one of those aliens who absolutely dislike that program.

By @rd07 - 5 months
Talking about text/code editor journey, currently I am using Pragtical, a fork of Lite XL. I have always wanted a GUI editor that is lightweight but easy enough to extend with plugin. And Pragtical and Lite XL almost checks all the box for me. There is still some missing features like code folding that has not been implemented, but it is not a killer feature for me. I actually quite enjoy fiddling with it and I have been writing several plugins for Lite XL and Pragtical even though I have no experience on Lua before. Lite XL's Matrix rooms (which is bridged with their Discord) is quite active and their member usually responds to any question asked.
By @jchw - 5 months
Neovim has felt frustrating. I still sort of manage a Neovim configuration, but have been gradually moving to Zed as well. (Similar reasons overall.)

I think everyone has their own personal list of gripes and wants for a text editor. Here's some issues that I think many people will immediately be struck by:

- Zed does not yet support EditorConfig. https://github.com/zed-industries/zed/issues/8534

- Zed does not yet support auto-detecting indentation in the current file. https://github.com/zed-industries/zed/issues/4681

- Zed does not yet support configuring indentation in the current file. (edit: clarified wording) https://github.com/zed-industries/zed/issues/4867

- The core editing experience is still less polished than Monaco. Example: Selecting a block of spaces and striking "delete" may lead to an uneven number of characters being deleted. It seems to interact poorly with indentation.

- No settings UI (yet?).

As a Linux (and specifically NixOS) user, there's also a few other problems that I would love to have solved:

- Zed can't be configured to not auto-update, which can simply never work on immutable distros or e.g. inside of Flatpak. It just tries and fails, wasting bandwidth. https://github.com/zed-industries/zed/issues/9224

- Zed can't re-use all already-installed language servers yet, so some language servers can't be used on platforms where the auto-download feature can not work. https://github.com/zed-industries/zed/issues/4978

- Zed doesn't really integrate well with direnv. VSCode is in the same boat, but Vim is not. https://github.com/zed-industries/zed/issues/4977

Overall Zed has been very nice. It definitely feels like it's still pre 1.0, but it is a very strong pre 1.0 to me. I am a bit weary on the focus on collaboration and AI features so soon, but I do realize that people actually like these features, so hopefully it's not a sign that the core editing experience is going to be neglected.

By @desireco42 - 5 months
So I read this not expecting to like Zed that much.

I remember initially it was only for Mac, which... is just not good enough for me.

Anyhow, I reinstalled it and it is really good. Github, Copilot were integrated in no time... I really appreciate that and it is very clean and easy to use.

By @eviks - 5 months
> Whenever I need to edit a configuration file for an app or just edit something really quickly while I’m already navigating in a terminal, nothing beats the convenience of whipping out Neovim. Opening Zed for every single file like that would get exhausting, but for longer term sessions or projects it’s perfect.

Which part exactly would exhaust you? These editors are fast to close/open even is there not already running (also you could just leave it open h, and you get the benefit of not blocking the current terminal session, so that's the convenience that beats neovim. Another one is that you can have editor's window size independent of the terminal size

By @pjmlp - 5 months
I have used multiple stuff since 1986, if it isn't an IDE like tool, I won't bother.

These kind of editors switching is like repairing that old covertible triumph from 1950 on the garage, interesting for some, not really something I care about.

By @deagle50 - 5 months
Has Zed started hiding the mouse cursor when typing? If not, I'll wait.
By @nsonha - 5 months
I have started using Zed as the secondary editor, after VSCode, since they added the repl feature, which is based on Jupyter. It's not that it's a killer feature but that and AI, out of the box, and the cleaner UI attracted me.

That said I actually been using Cursor more in my testing of AI code because they just have better AI (with regard to how they add things into the context, I use both with sonnet). Also the UI integration is more comprehensive.

By @hakunin - 5 months
I can't escape Sublime Text's grip. The editor is incredibly smooth and gets out of the way like no other. (Tried a bunch of them). However, lately I started opening Zed on occasion just to ask ChatGPT to make a non-trivial edit on a bunch of code. The way Zed does inline AI assist is unmatched. That's why I can't wait for Sublime to gain this functionality, so that I can calm down and stay with it.
By @hello_computer - 5 months
For a GUI editor, Zed is nice, but for me, the killer feature of vim is that it runs inside a terminal emulator. Being able to SSH-in, or even dial-up, and work directly on a remote machine is huge. Some GUI editors have SSHFS integrations that make it easier to edit remote files, but I've found them to all be rather unreliable, and unavoidably so--given the inherently unreliable nature of networks.
By @nelsonfigueroa - 5 months
I like Zed too and use it on a daily basis. I've always wanted to take the opposite journey where I leave Zed/Sublime for Vim. While I have always to become a Vim expert, I never put in the time. There just hasn't been a situation in my career where I wish I could type faster than my thoughts. But maybe I'm just a scrub in this field.
By @meiraleal - 5 months
It is great to see new editors gaining traction after VSCode took most of the market.
By @rldjbpin - 5 months
i wish i could speak in length about how the ide i use helps me be the "10x" dev i am clearly not.

i would say this as a mid-level dev in a team spread across geographies, however: when using a workflow that should work for all, it is more important to have a tool that works for all rather than the "best" one.

unfortunately, neither (neo)vim nor zed seem to be in a place where an entire team could easily adopt to its workflow. the latter probably needs a while to marinate and become suitable for most.

By @tipsytoad - 5 months
Just another +1 that if you’re going to give vscode a fair shot, it’s much better to go with vscode-neovim than the standard vim extension. You can even map most of your config right over.

E.g. (mine) https://github.com/tom-pollak/dotfiles/tree/master/nvim

By @tengbretson - 5 months
I've found Zed's vim mode to be great for learning vim without having to give up all of my muscle memory built up from using vscode for so long.
By @deadlypointer - 5 months
"Just works" is fine... Until it does not, and you have a hard time finding the issue. I prefer more control over my editor.
By @Daunk - 5 months
I personally use Vim because it lets me use the keyboard for everything. In Zed there are still lots of places I have to use the mouse.
By @squidsoup - 5 months
I’m currently using VS Code with the Neovim extension. Has anyone migrated to Zed from Code? Curious what your experience has been.
By @ycombinatrix - 5 months
opens newspaper i should try using a vim plugin at some point
By @robertlf - 5 months
A good article, but you really can't see the screenshots at all.
By @trostaft - 5 months
Seems like the guy’s website got hugged?
By @jmclnx - 5 months
When I hear about zed, I have to think for a bit to realize it is not zed.exe that came with Zortech c v1.0 for MS-DOS :)
By @amitprayal - 5 months
jEdit is the most underrated editor ever
By @AlexErrant - 5 months
I die inside whenever I use `\<` and `\>` for word boundary regex. Neovim has no plans to change this either. I'll likely switch eventually so I don't have to know two flavors of regex. One is hard enough.
By @tasuki - 5 months
> Every now and then I would update a plugin [...]

Why would you do that? I keep my plugins pinned at whatever old version I happened to use first...

By @sghiassy - 5 months
Honestly, I don’t understand when someone says VSCode is slow because it’s built on Electron. Are they talking about the 3 extra seconds on cold start? Is that really something to scoff at considering all its benefits??
By @noncoml - 5 months
Zed’s dead, baby. Zed’s dead.