What would encourage a programmer to migrate to a new text editor or IDE? Developing in VSCode vs Zed vs Neovim.
February 20, 2025•873 words
It is hard to migrate away from an editor or IDE[1] when you invested a lot of time and effort in settings things up the way you like.
For developers and software engineers to even consider using a new editor, seems like one of two things must happen:
- It has at least one amazing, unique feature (sometimes called a "killer feature").
- Migrating is extremely easy and cheap, without requiring a lot of work.
Neovim is a great example. It had some nice features like async (rpc) extensions, better defaults and Lua support, but none of them were very important for me initially. I still tried, as it was advertised as a drop-in replacement for Vim and it really was. I ended up never going back, later enjoying some of the new features.
What about Zed?
I heard great things about it, but the advertised benefits didn't seem very important for me when it first landed on Linux, July 2024. I wanted to try anyway.
Here we get to my first problem: it took quite some time and effort to port my VSCode stuff (settings and keymaps) to Zed. Perhaps it was because I use the VSCodeVim extension, I'm not sure... but I gave up at that time.
Now I'm trying again. I played more with the settings and got most things working as I want, so I plan to keep using Zed for some time.
I do believe that users would benefit from a more detailed onboard, though, like:
- A similar doc to the Vim Mode one, which is very good.
- A table mapping most common settings and keybindings from other editors to Zed equivalents.
- A tool that would automatically convert settings and keybindings, perhaps :D.
More people would try Zed if the on-boarding experience removed or reduced most of the migration effort, just like it happened for me with Neovim.
Another problem that discourages me from having Zed as my primary editor is that it doesn't have a high quality Git integration like VSCode does.
Here, again, we can look at the ease of migration as an important adoption mechanism. Initially, I used Vim's Fugitive Git plugin, which is amazing. When I started using VSCode, I noticed that the Git was great, very easy to use effectively, and I never felt the need to go back. I do use it with the GitLens plugin, but IIRC it worked great even without it.
Right now, Feb/25, Zed does not have something like that, but it seems like the team is working on something (search "git" in the extensions window and it will display a message: Zed comes with basic Git support. More Git features are coming in the future
). It is not a deal breaker for me, as I can keep using VSCode's Git features, but it does prevent me from using mostly/only Zed.
Finally, there are some minor things that I would like:
- Better font rendering support on Linux, but that is true for most things :/.
- Support for the F# language. In VSCode, the support is mostly provided by the Ionide extension, built around an LSP. But now, the dotnet sdk comes with a Jupyter kernel, the Zed already detects. Perhaps there's an easy way to enable it in the editor and I just didn't find out yet.
- (Those are the ones I remember now.)
Cheers,
Marcelo.
p.s.: I plan on updating this post once I have a bit more time with Zed. Right now I changed my "take a quick look at this file" editor from Sublime to Zed, and perhaps will try it in some of my main projects too.
p.s.2: I was looking at Zed's roadmap and those two points are explicitly listed for the 1.0 release[2], around July/25!
p.s.3: I just noticed that the app allows us to book an on-boarding call. The arrow to the right of the "Sign in" button has a "Book Onboarding" link that redirects to a form with the following text:
Zed: Onboarding Call
Thank you for your interest on chatting with us! We want to learn about your experience with Zed so far, and set you up for success as you build in Zed.
References
Originally created at: Feb 19, 2025 20:19.
Footnotes
[1]: To simplify, I'll use the term "editor" meaning both editors and IDEs.
[2]: The roadmap post text:
### Zed 1.0 – Targeting Summer 2025
1. Deal-Breaker Features:
- Git Integration: In progress.
- Debugger: In progress, slated for release after Git integration.
- Language-Specific Deal-Breakers: For Rust, Web, Python, and emerging languages like Zig.
2. AI Features:
- [Edit Prediction](https://zed.dev/edit-prediction): Public beta's released! View the [announcement blog post here](https://zed.dev/blog/edit-prediction).
- Extensible Agentic Editing: In early progress.
3. Windows Support: In progress.
4. New User Experience: [Now hiring.](https://zed.dev/jobs)
- Minimize time to first commit.
- Import settings and keymaps from other editors.
- Improve documentation and reduce configuration friction.
5. Papercuts: In progress, [and growing the team](https://zed.dev/jobs).
6. Notebooks
7. Scalability: Ensure good performance for large repositories.
8. Basic Accessibility
### Beyond 1.0
- Async Collaboration and Version Control
- Broader Extensibility
- Exploratory AI Features
- Improved Accessibility
- Improved Localization