I'm very happy to see work on the debugger. This is the main feature preventing me from switching full time to zed.
Unfortunately, "here" is not accurate. Not having a watch window, a stack trace view, and no mention of data breakpoints in the announcement still keeps the "beta" tag. I know those features will arrive eventually, but what is described is definitely not sufficient for 97% of my debugging sessions.
I would also have liked to see more in the announcement of multiple simultaneous debug sessions, and on how multithreaded debugging is planned. There are really cool things that can be done with multithreaded debugging further down the line that I'd be interesting in hearing about (like how RemedyBG has a DAW-like UI for freezing certain threads, or hitting one button to "solo" a thread and freeze all others).
Hey Laserbeam, I'm one of the devs that made the debugger and the one that wrote the article.
We do have a basic stack trace view that basically all debuggers support. What's coming out in the near future is a stack trace view in our multi buffer system. In fact, you can use the "show stack trace" action while in an active debug session to expand the call stack in a multi buffer, where each excerpt is a frame. It's just not up to the quality that I and several others expect from Zed, so I didn't advertise it.
There's also a PR for a watching variables/expression that is going to be merged in a couple of days. The functionality is done, but we didn't want to add a feature so close to launch that wasn't fully tested.
Support for data breakpoints will come in the near future. I can't say when because we're planning on focusing on automatic configuration for a while, but it is a priority.
We do support simultaneously debugging multiple sessions at the same time and multithreaded debugging too. There's still more to do with it, but the support is definitely there!
I am VERY confident you guys have everything I mentioned either half working or coming shortly, so I'm not worried. I just saw a "the debugger is here!" announcement, then read the announcement, and saw what's still under todo... My reaction is "well, it's not here, it'll be here in a few weeks". And that's ok ^.^
Am impressed by the under-the-hood discussion though. Keep up the great work!
The blog post mentions[1] that advanced views are in development. This initial release and announcement focuses on the underlying foundation they're building upon.
> New views: While we support all the fundamental views, we're planning on adding more advanced views such as a watch list, memory view, disassembly view, and a stack trace view
I have to try out the debugger yet. However I share your sentiment but for the Git feature. The basics are there but it is just not complete yet to fully replace my current git workflow. Hope they keep focus on that as well.
Nothing has been able to replace Magit for me, yet. Having a Zed UI for Git like Magit is my dream feature request.
With that said, Zed has effectively replaced all of Emacs for me, besides Magit. Additionally, typing in other editors feels noticeably higher latency than Zed :)
I've been daily driving Zed for almost a year now -- works best on TypeScript, Rust, and Go projects, in my opinion.
There's just so much functionality Zed has to build out to compete with modern editors (agentic coding, collaboration, debugging, edit prediction, task runners, version control). With that said, for pair-programming sessions with friends, Zed has been perfect since Linux gained screenshare support. However, there's a noticeable "pause in development" for collaboration in order to implement major features like Agentic Coding, and smaller-but-essential features like direnv integration, IME support (typing Japanese in the terminal used to be a clunky, error-prone task), dealing with the endless permutations of Python tooling so that Python files aren't a sea of red lines, etc.
Zed is fantastic. I've been making the leap from neovim to zed lately, and it's been an great experience. Everything feels snappy, and I love how well they've integrated Vim bindings. Their agent mode is nice as well.
It's clearly an underdog to VSCode, so the extension ecosystem isn't quite there yet... but for a lot of the things I've used it for, it's sufficient. The debugger has been the big missing feature for me and I'm really glad they've built it out now - awesome work.
I love how fast Windsurf and Cursor are with the "tab-tab-tab" code auto-completion, where nearly everything suggested is spot-on and the suggestions keep on rolling, almost automating the entire task of refactoring for you. This form of autocomplete works really well with TypeScript and other scripting languages.
IntelliJ / RustRover never got anywhere close to that level of behavior you can get in Cursor and Windsurf, neither in conjunction with JetBrains own models or with Co-pilot. I chalked it up as an IDE / model / language mismatch thing. That Rust just wasn't amenable to this.
A few questions:
1) Are we to that magical tab-tab-tab and everything autocompletes fluently with Rust yet? (And does this work in Zed?)
2) How does Zed compare to Cursor and Windsurf? How does it compare to RustRover, and in particular, JetBrains' command of the Rust AST?
It's fantastic for Rust, it's my main IDE which I've written e.g. voltlane.net in. Fantastic software, and the LLM integration is everything you need IMO (in a good way).
Every time I've encountered a vim emulator I've found it is just close enough that my fingers are doing the wrong things so often it's frustrating. Almost to the point where I would prefer a non-vimmy editor since at least then my fingers always do the wrong thing.
To me it has been the best "vim" that is not a real Vim. Way way better than the vscode plugin. I have used Vim and later Neovim since 2008 or so. Zed is the first non-vim I am truly happy with.
Zed was the first editor that tempted me into using AI features. It felt solid in general and AI feels mostly like autocomplete in other editors (in terms of how much it's in your face). There's definitely a place for AI models and agents in code editors, and Zed makes me feel like it's not built around them, which is great! Zed feel like "Come to us, we are making a good fast editor that also has AI." while competition feel like "Come to us, we want AI that has an editor".
I went to check out neovim and noticed it's currently sponsored by two AI products! Of course, that's one level removed from actually integrating AI in your product but, still—it's getting harder and harder to avoid altogether.
Thankfully for me, I guess, neovim broke my config about a year ago by changing the default color scheme in a way that I could not fix easily with confug. So I forked and built my own and will likely never update it.
The AI features in Zed are very easy to turn off / ignore. I agree that the AI features are probably taking development time away from other features that might be more useful.
they are not intrusive but their entire focus changed on that instead of other features. Entire Git view feels abandoned in half done state yet they spent entire month working on AI chats, AI agents, their own AI edit (that's priced 20 per month yet they boast how light and performant it is -- why isn't it free local model then and why its priced worse than copilot?)
They're moving from "making awesome code editor" into yet another "buy our ai" product
I think you're referring to autocomplete? It's much better than, say, 2 years ago when it was indeed annoying as hell. Having said I always turn it off and use agentic coding, which is not intrusive, only activate if you ask for it. This applies to all coding tools these days, autocomplete is no longer their focus.
I just tried it out again. It seems like you can disable the chat bot integration by adding this to the config:
"agent": {
"enabled": false
}
However from the documentation[1] I can't see a way to disable the "AI" predictions button (which asks you to sign in to their online "AI" service with your GitHub account). Am I missing something?
Zed feels like what Lapce, Helix and Neovim couldn't achieve in the time they spent.
I started using Helix back around 2021-2022 and just couldn't get over the bugs and lack of integration. It was good, but PHP support (I was working at an older company) was bad.
Neovim felt closest to a nice editor but there were some popular community-driven plugins that were very stubborn, and alternatives were just very slow. I was also just overwhelmed by the choices I needed to make for something stable.
Lapce just felt like a VSCode clone that didn't do anything special. Looked cool, but I did not feel like it was ready for a daily driver (And it still doesn't).
Zed became a favorite in a short amount of time, and I'm extremely grateful for it every day. The debugger is a nice addition.
This might be off-topic, but I really want to use Helix. I've been using Vim keybindings for a few years now but it's so unintuitive, there's still so many things I can't do efficiently in Vim. Helix just makes so much more sense for my brain. But I don't use Vim/Neovim by itself, I always use an integration with an editor like VSCode or Obsidian (Obsidian's Vim emulation isn't great, but it's good enough). Helix just isn't there yet with VSCode or Obsidian.
I wish more "Vim successors" would focus more on integrating with existing IDEs, rather than becoming one themselves. I don't want to have to set up an entirely new workflow when I change how I edit text.
That's also why I haven't tried using Neovim as a standalone IDE. It looks like I'd really like it, but I don't want to be locked in to using Vim.
People keep forgetting the UNIX tools they love sooo much predate PHP, follow the same worse is better mentally, and trace back to 1969, but for some strange time travel reason, they are considered modern.
Ever since Linux support came out (2 years ago?), I go to check if they, finally, support “non-retina” “LoDPi” (a.k.a: a regular screen) yet, and sadly no :/
Yes. Originally they were Mac-only, then they went open-source and the community added support for Linux and Windows, but AFAICT they've never invested in anything but Mac
Zed developers themselves acknowledge the blurry font issue [1], so either you just don't notice blurry fonts or 1920x1200 on a small laptop screen is HiDPI-enough to kinda hide the blurriness.
My desktop monitor is 1920x1080. On my computer and display; Vim, Emacs and VSCode are all able to render their fonts crisply while Zed is a blurry mess.
Are you using dark mode? To me, text looks absolutely awful in light mode, but okay in dark mode. Still noticeably worse than any other editors, though.
I think competent software engineers should actually read the "Under the hood" section, before they lose the core understanding on how debuggers work and are integrated into editors.
Upon reading the Rust code implementing the Debug Adapter Protocol (DAP) in Zed, some very junior SWEs will quickly point out that they would prefer only "self-documenting code" and would go as far as to removing all comments or even believe that "If it has comments, its probably bad code".
For sophisticated software that implements a defined protocol that is architected to be scalable in any piece of complex software, I prefer these comments that explains why a particular interface is designed the way it is and how it fits into the software (Zed) in this case if it were to be widely re-used like a plugin system.
This blog post is excellent in explaining this debugger integration in the editor and it makes me want to consider using Zed; it just needs an improved extension ecosystem.
If be surprised if Zed aren't dogfooding their own AI agents to help writing some of the Zed code. The AI often put a lot of comments on the generated code, and sometimes needs a lot of comments to produce the right code.
It's surprisingly slow. Switching files in the tab list has a noticeable delay. Typing is higher latency than both Emacs (lsp-mode activated) and my web browser. Also uses approximately 60MiB more than my Emacs. It starts fast though!
I wouldn't complain about this stuff if it wasn't for their tagline being 'it's fast' and they're losing to Emacs Lisp (not a language amenable to being very fast) with a highly optimized C core.
I looked at their plugins, they're compiled into WASM and run in some VM. Maybe that's part of it?
How did you manage to make zed slower than emacs? From my experience, latency in zed sometimes even feels negative. Everything is instant: editing, lsp commands, file switching
In contrast, all my attempts at emacs ended up in dropping it due to latency issues (mostly because I work on remote machines)
> I looked at their plugins, they're compiled into WASM and run in some VM. Maybe that's part of it?
No. The ones I've looked just set up stuff, like launching a language server. They shouldn't be involved in typing.
I think it's related to the GPU usage. It's easy to introduce delays when you do GPU compositing, and the OS will already be doing its own.
As for emacs, IIRC they did some ugly things to update the UI directly instead of going through the normal event loop, which was causing compatibility issues later on.
Unfortunately, "here" is not accurate. Not having a watch window, a stack trace view, and no mention of data breakpoints in the announcement still keeps the "beta" tag. I know those features will arrive eventually, but what is described is definitely not sufficient for 97% of my debugging sessions.
I would also have liked to see more in the announcement of multiple simultaneous debug sessions, and on how multithreaded debugging is planned. There are really cool things that can be done with multithreaded debugging further down the line that I'd be interesting in hearing about (like how RemedyBG has a DAW-like UI for freezing certain threads, or hitting one button to "solo" a thread and freeze all others).
We do have a basic stack trace view that basically all debuggers support. What's coming out in the near future is a stack trace view in our multi buffer system. In fact, you can use the "show stack trace" action while in an active debug session to expand the call stack in a multi buffer, where each excerpt is a frame. It's just not up to the quality that I and several others expect from Zed, so I didn't advertise it.
There's also a PR for a watching variables/expression that is going to be merged in a couple of days. The functionality is done, but we didn't want to add a feature so close to launch that wasn't fully tested.
Support for data breakpoints will come in the near future. I can't say when because we're planning on focusing on automatic configuration for a while, but it is a priority.
We do support simultaneously debugging multiple sessions at the same time and multithreaded debugging too. There's still more to do with it, but the support is definitely there!
Am impressed by the under-the-hood discussion though. Keep up the great work!
> New views: While we support all the fundamental views, we're planning on adding more advanced views such as a watch list, memory view, disassembly view, and a stack trace view
[1] https://zed.dev/blog/debugger#whats-next
With that said, Zed has effectively replaced all of Emacs for me, besides Magit. Additionally, typing in other editors feels noticeably higher latency than Zed :)
I've been daily driving Zed for almost a year now -- works best on TypeScript, Rust, and Go projects, in my opinion.
There's just so much functionality Zed has to build out to compete with modern editors (agentic coding, collaboration, debugging, edit prediction, task runners, version control). With that said, for pair-programming sessions with friends, Zed has been perfect since Linux gained screenshare support. However, there's a noticeable "pause in development" for collaboration in order to implement major features like Agentic Coding, and smaller-but-essential features like direnv integration, IME support (typing Japanese in the terminal used to be a clunky, error-prone task), dealing with the endless permutations of Python tooling so that Python files aren't a sea of red lines, etc.
I don't think there's an issue for data breakpoints, but you can make one for us
Deleted Comment
I love how fast Windsurf and Cursor are with the "tab-tab-tab" code auto-completion, where nearly everything suggested is spot-on and the suggestions keep on rolling, almost automating the entire task of refactoring for you. This form of autocomplete works really well with TypeScript and other scripting languages.
IntelliJ / RustRover never got anywhere close to that level of behavior you can get in Cursor and Windsurf, neither in conjunction with JetBrains own models or with Co-pilot. I chalked it up as an IDE / model / language mismatch thing. That Rust just wasn't amenable to this.
A few questions:
1) Are we to that magical tab-tab-tab and everything autocompletes fluently with Rust yet? (And does this work in Zed?)
2) How does Zed compare to Cursor and Windsurf? How does it compare to RustRover, and in particular, JetBrains' command of the Rust AST?
I think they all use LSP, so whether you use neovim or Zed there shouldn't be a difference? (not 100% sure, but that's my basic understanding of LSP).
Every time I've encountered a vim emulator I've found it is just close enough that my fingers are doing the wrong things so often it's frustrating. Almost to the point where I would prefer a non-vimmy editor since at least then my fingers always do the wrong thing.
I'll just stick with Neovim until something better comes around. Which probably won't happen until after the "AI" bubble bursts.
I guess it's always possible to return to Vim if Neovim starts showing signs of being steered by its sponsors.
They're moving from "making awesome code editor" into yet another "buy our ai" product
Just like I want a terminal without AI features, which is why I'm no longer using iTerm2
Furthermore, Zed Agents are currently my favorite way of using LLM's during programming
agent.enabled = false and it's gone, no?
[1] https://zed.dev/docs/configuring-zed#edit-predictions
Dead Comment
I started using Helix back around 2021-2022 and just couldn't get over the bugs and lack of integration. It was good, but PHP support (I was working at an older company) was bad.
Neovim felt closest to a nice editor but there were some popular community-driven plugins that were very stubborn, and alternatives were just very slow. I was also just overwhelmed by the choices I needed to make for something stable.
Lapce just felt like a VSCode clone that didn't do anything special. Looked cool, but I did not feel like it was ready for a daily driver (And it still doesn't).
Zed became a favorite in a short amount of time, and I'm extremely grateful for it every day. The debugger is a nice addition.
I wish more "Vim successors" would focus more on integrating with existing IDEs, rather than becoming one themselves. I don't want to have to set up an entirely new workflow when I change how I edit text.
That's also why I haven't tried using Neovim as a standalone IDE. It looks like I'd really like it, but I don't want to be locked in to using Vim.
Not sure why PHP needs a qualifier like this.
Deleted Comment
Dead Comment
Interesting way to qualify the most popular editor of human history.
IMHO Debug Adapter Protocol (DAP) and Language Server Protocol (LSP) are the best things happened to programming tooling in the last decade.
(I wrote this comment in another thread about the same link but didn't hit the frontpage)
Github issue for context: https://github.com/zed-industries/zed/issues/7992
This is not that surprising to me. Surely no-one wants to spend their day looking at the pixels?
https://github.com/deevus/zed-windows-builds
Installing the 'stable' build with scoop works a treat.
My desktop monitor is 1920x1080. On my computer and display; Vim, Emacs and VSCode are all able to render their fonts crisply while Zed is a blurry mess.
[1]: https://github.com/zed-industries/zed/issues/7992
Upon reading the Rust code implementing the Debug Adapter Protocol (DAP) in Zed, some very junior SWEs will quickly point out that they would prefer only "self-documenting code" and would go as far as to removing all comments or even believe that "If it has comments, its probably bad code".
For sophisticated software that implements a defined protocol that is architected to be scalable in any piece of complex software, I prefer these comments that explains why a particular interface is designed the way it is and how it fits into the software (Zed) in this case if it were to be widely re-used like a plugin system.
This blog post is excellent in explaining this debugger integration in the editor and it makes me want to consider using Zed; it just needs an improved extension ecosystem.
[0] https://zed.dev/blog/debugger#under-the-hood
Deleted Comment
I wouldn't complain about this stuff if it wasn't for their tagline being 'it's fast' and they're losing to Emacs Lisp (not a language amenable to being very fast) with a highly optimized C core.
I looked at their plugins, they're compiled into WASM and run in some VM. Maybe that's part of it?
In contrast, all my attempts at emacs ended up in dropping it due to latency issues (mostly because I work on remote machines)
No. The ones I've looked just set up stuff, like launching a language server. They shouldn't be involved in typing.
I think it's related to the GPU usage. It's easy to introduce delays when you do GPU compositing, and the OS will already be doing its own.
As for emacs, IIRC they did some ugly things to update the UI directly instead of going through the normal event loop, which was causing compatibility issues later on.
https://elpa.gnu.org/packages/dape.html
The way it's designed (incl. having no dependencies) suggests that they will be angling for it to be included with stock Emacs at some point.