I really want to like Zed because they've clearly put so much work into it, but so far I've been sticking with Sublime. I have several large PHP projects that were started in the 2010-2020 era, and Zed will highlight and complain about all sorts of minor things that were standard PHP fare at the time: functions without return types, for example. My code (which works fine) looks like an ocean of red when I view it with Zed, and turning all those warnings off is not trivial.
For each kind of warning, I wish there was a button that said "don't warn me again about issues like this one in this project." Then I could keep the interesting warnings (like undeclared variable) and ditch the ridiculous ones.
Coming from Sublime, I'd never even heard of a Language Server when I first tried Zed. As I recall, disabling particular kinds of warnings required copy-pasting some pretty exotic incantations into my project config. All of it was poorly documented, and it felt like I was doing something nobody expected me to do. Instead, I should have been able to mouse over a particular warning and say "don't warn me again about things like this", at which point Zed should edit the project config for me.
Well, PHPStorm (and the other JetBrains IDEs) does it this way. You can disable a certain "inspection" globally, per project, per file, per method or just for one occurence - the last three work by inserting annotations into the code. Then again, PHPStorm costs money (not just if you want AI assistance), and is based on (drum roll) Java technology (although JetBrains don't advertise this fact a lot nowadays).
that does sound like a pretty nice ui idea to add to code actions (command + .), it already lets you one-click add an ignore comment iirc so probably not too hard to wire a global per-project option
however, i think LSP or integrated linters/typecheckers have been standard fare in editors for a while now (zed does seem to have a lot more set up by default, but i like the sane defaults most of the time). The "correct" solution would be to configure whatever lsp zed is running for the project the way you want, and reap the benefits even outside of zed. for php the tools are listed here: https://zed.dev/docs/languages/php the main one seems to be Phpactor and you should be able to configure it globally or per project https://phpactor.readthedocs.io/en/master/usage/configuratio...
but i understand the frustration, sometimes i try to navigate an ancient python codebase and it really is a sea of red
I love Sublime, but I don't want to pay to upgrade from 3 to whatever version it is now, Zed is everything I wanted Sublime to be. Honestly, I wanted VS Code but fully native, and I feel like that's what I'm getting from Zed.
I feel like some people will be put off by all the "AI" mentioned by Zed, but you're sleeping on a top tier editor where you can just ignore the AI stuff if you don't want it. It's very high quality, and probably the reason I wont be renewing next year for JetBrains, unless JetBrains does something impressive, I thought by now they'd have a more native feeling IDE that handles most / any language instead of so many separate ones.
VS Code has gotten so bloated over the years. The gold standard of ST has spoiled me with simpler editors. Zed is the first time I felt like someone finally built an editor that is modern and has a rich set of features.
> I love Sublime, but I don't want to pay to upgrade from 3 to whatever version it is now
I don't know what your financial situation is, but given that the upgrade is an $80 one off payment (a new license is $99), that it's a per-user license (not per-machine), and that there were 8 years between Sublime Text 3 (2013) and Sublime Text 4 (2021) (only major versions require a new license), I personally think it's very reasonably priced.
Agreed-- Sublime is asking $99 right now, which is quite reasonable for something that you're going to use for hours a day in your professional work. Somebody gave many years of their life to make that tool the best it could be, and as a well-paid professional, I feel it's more than fair. In other high-end professions (like the legal field), I've heard of law firms paying a lot more than $99 for certain software licenses.
That said, there are a lot of reasons why someone might be struggling with money. If I was the creator, I wouldn't object to someone using an unlicensed copy forever in that case.
There isn't any other than the occasional message when you save that tells you to buy the product. It's about as close to freeware as a paid product can get.
I do suggest people pay though, it's cheap for a one-time purchase. The only reason I've ever seen the message at all is because I spent months being too lazy to dig up the license key to send to my work email. (That should also say something about how little I was being bothered by the message too)
We use intelphense with vscode and it's only mildly red (zf1 mutant project). It also understands stubs from phpstorm. Default lsp for Zed is phpactor and it was just an inferior experience compared to intelephense (free) in vs code last time I tried. Now there's even a guide for adding intelephense to zed, but I'm yet to try it out.
You should be able to just turn off the language server. Go to the lightning bolt icon in the bottom bar, "Stop all servers" or just the PHP one lighting up your source code.
I'm also sticking with Sublime for many years, and at this point it feels like it is some kind of old man stubbornness (like George R.R. Martin using WordStar 4.0 type thing). I don't know why its ergonomics for me have been just unbeatable. I gave others (VSCode and Zed) good weeks and months of configuring them to my liking and using them exlusively, and always returned to Sublime. All the AI stuff just runs on the side in the terminal (iTerm2 for me, but checking in on Ghostty sometimes too, waiting on them to figure out their minimal text brightness feature).
> I'm sure you can configure whatever language server PHP is using to disable specific warnings, etc
You may be able to do this by editing a language server-specific config file in whatever arcane syntax they decided to offer. But there isn't any editor support for configuring languages servers, so it's a bit of a lift for a newcomer who just wants to turn off some warnings
If you're using zed, couldn't you use AI to fix something like that? Those copy and paste type changes over a code base is something AI assistants are really good at.
I could! I'd probably have to take it piece by piece, rather than telling an AI to edit hundreds of files in one epic session and hoping for the best. Even just reviewing a commit that large feels like it would be a bad use of time. Also, giving every variable a type (or using "mixed" everywhere), and giving every function a return type (more "mixed" or "void") would just make the code more verbose without any justification that I can see.
With Zed, I feel like I'm being dragged into a modern style guide that I never agreed to. It would be nicer if I could make it my own by turning off those parts that I disagree with and keeping the rest. I know this is technically possible, but they've certainly not made it easy.
From what I can gather from a cursory glance at the docs, zed uses intelephense and that its diagnostics can be disabled. The whole lsp can be disabled. At the risk of sounding like I'm saying "you're holding it wrong", I have to say that this is an OP problem and not a Zed problem. These are sensible defaults that work for almost everyone, in my opinion.
Whereas I'm not a great fan of modals for anything where I'd like to refer back to what I'm working on. I guess I'd just prefer some tabs to open as a split by default and close with esc, maybe call them something like "ephemeral tabs"? Basically, steal some ideas from emacs.
This. I tried Zed for an entire month, but this "search thing" drove me nuts. It is also slow. If you work in a large project search is absolutely essential. Too bad.. Back to Visual Studio Code.
I love the search in zed. If it was up to me it would open a new tab on every search rather than reusing the same tab, so that I didn't have to redo past searches.
The multibuffer result is so nice for "hands-on" search and replace.
> Sometimes I just want to have a quick glance at some code and close the search using escape.
How else are you going to have “a quick glance at code” *across* project files without using a new view for that? It sounds like you’re describing something impossible.
Zed’s across files search solves this in a similar way as other tools. Except that in zed you can also edit the code where your search results show up. Zed also has within file search.
yeah its quite silly they decided to mess around with this universally standard behaviour. The search is the reason why i always end up going back to other vs code based IDEs for real work. I open zed for perf reasons and something quick.
Also now they've introduced this "agent first" layout which i cannot undo. They're strength is in perf, idk why try to reinvent the wheel w.r.t DX.
What an abysmal series of top comments. These guys created a phenomenal product using novel technology, which will only continue to improve. Great work to the Zed team.
Congrats to the Zed team for building the best modern editor I have ever used. I subscribe to the monthly plan just to give you guys the funding you need, even if my funding is a tiny drop in the bucket. I always wanted a feature rich alternative to Sublime Text that can run anywhere and do basically anything I need from it. I've use JetBrains IDEs for years (been subscribed annually since 2017), but since Zed I havent really opened any of those IDEs in a long time, other than maybe Rider but that's due to C# nuances I needed to work with.
I use it for Elixir and ansible stuff. I may eventually be open to using it instead of PyCharm for python and/or Nova for C.
If there's one area I still feel that Zed lets me down is in pane management. Maybe I need to just learn more key shortcuts. But I spend a bit of time "managing" the secondary panes and having to switch back and forth between outline, files, search. I'm not sure what the solution is. Just wish the secondary panes weren't a scarce resource that had to be mux'ed betwixt.
I really like(d) the agent integration, but we're currently experimenting with Claude Code Desktop, and I really miss not having the tight integration. My guess is that I'm going to switch back to using the Pro subsidized version. I was getting by with ~$40-$50 a month. Now the company is paying $125 for Claude Team premium seat, and it's a lesser experience.
I'd love to see the Alacritty terminal backend swapped out with libghostty (or more likely libghostty-rs). The work Mitchell is doing with Ghostty and the approach Zed has taken seem super aligned.
And Mitchell definitely seems to want to make Alacritty an easy target for conversion, he was just talking about being open to help support Warp with it: https://x.com/mitchellh/status/2049159764261925005
My daily driver is Zed developing on SSH remote servers on exe.dev.
It's crazy to think of all the dev tools I've churned through over the last 18 months but these two feel sticky.
Zed has everything I need in a unified pane. File editor, terminal, agents, SSH remotes. And it's fast and intuitive
exe.dev is the first "dev container" I've ever *loved*. The remote sandbox means `dangerously-skip-permissions` is safe. Being on the internet with good private / shared / public access saves so much time.
I also use https://conductor.build/ and GitHub but this is starting to feel clunky compared hacking directly against online live reloading apps.
I'm glad to hear the SSH remote editing is working well.
A lot of the time I'm developing on a remote server using VSCode Remote-SSH. I mostly love it. But! It consumes a lot of memory. And not only that. At times it gets stuck in some infinite loop or such, and ends up consuming all memory on the machine, preventing all traffic. Takes a few minutes for the OS to finally kill it, so I can get back in. I'm pretty this is happening due to large collections of symlinks (the subprocess eating up the memory is rg). But also just JavaScript editing at times launches up a bunch of ts-servers consuming everything and more.
This is super scary, if I'm poking around on the prod server.
Using Zed with ssh is an interesting idea. I spend a lot of time mosh/ssh to VPSs, then running 'emacs -nw' locally on the server. This is a great setup since I love Emacs, but I will give Zed/ssh a try. Thanks.
I quite like Zed, I've consistently driven it for months at a time. But there are two things that add enough friction that over that month or so I end up bailing back to one of my other editors (vscode/neovim). The search experience being a new tab with no sidebar option and the diff viewer being a multibuffer view with no option to see the entire contents of a file you are diffing.
That being said, I love the software and will continue to check back on it with the hopes that it sticks one day. Congrats on the 1.0!!
I've been using the editor since the early days and have always been a fan of its visual look and feel, so I was pretty happy to see its UI library open sourced.
I wish GPUI could become the go-to Rust UI library and not just an editor backend.
For that, a couple of changes would be highly desirable: being able to switch the GPU backend from Metal to wgpu (so it could be mixed with vello, for instance), and the ability to integrate into an existing event loop like egui allows you to. If this were easy to do, I would switch from egui in a heartbeat.
I like Zed but as a user of Scala it is not open-enough of a platform to be useful beyond small projects.
e.g. its "run" gutter icons rely on context free grammar queries, but of course Scala allows to define main methods via inheritance from a class. Zed's extension api should let the extension report entry points via whatever internal mechanism it needs.
This also goes for the various testing libraries in Scala that because only tree-sitter queries are supported therefore need a custom pattern match for each library as they have their own mechanisms, rather than letting the extension provide its own test harness (easily handled by build tools automatically) - Zed should provide something similar to VS Code's Test Explorer and Testing API interface.
Also extensions can't add new UI, so you are stuck fitting to the recipe Zed team provides for you to plug into, and often enough this is not satisfactory.
The only thing that bothers me about Zed is the theme. It's so bland it actually gives me reading difficulties. I'd be surprised if some of the color combinations don't pose an accessibility issue. Grey text on grey background is quite the choice.
I do agree that Zed's default themes aren't great. They look too 'plain' for my taste. Bit more contrast can't hurt either.
BUT: It's very easy to just choose a different theme and there are plenty to choose from by now. It's even possible to make your own theme and they even have a first-party theme editor (https://zed.dev/theme-builder) which works great. They should maybe include some descriptions for each color instead of just the name but that's the only negative thing I can say right now.
I'd even say that it's easier to theme Zed than VSCode because there are fewer variables.
As far as I can tell you can theme nearly everything in the app. I've got custom colors for diffs and some syntax, and my base theme is ripped from Monokai.
I found it funny when an American customer support person I was talking to over the phone had no idea what "zed" meant. I was reciting some code and they asked, "what is zed"? I said, "uh, the last letter of the alphabet".
Just tried it out and it works great and is really fast! It's a breath of fresh air compared to VS Code. Lots of other editors are fast, but this seems feature complete as well as fast.
Congratz to the team. I really like zed and started using it quite early, loved the text threads and was using them a lot as I don't think llms fit in a box of only agents, they were a nice way to manage conversations, work through them, edit responses to lead the agent better, copy-paste full text, sad to see them go (text threads).
I'm trying right now the ACP with my own agent and I'm of mixed opinions but that's maybe because I care how my agent works. I believe that for the agent view a plain buffer with small ui elements would be the best ui for an agent conversation but I may have been spoiled by their text threads. I may spin a personal fork but the thought of tens of mins of compile time isn't that attractive.
Edit: I realized I started moving to terminal based editors like helix due to agents: claude -> codex -> custom pi, with the open sourcing of warp I was considering making a native integration for warp + pi but now I'm thinking zed's text threads (~17k lines) + pi might be a better way, any thoughts or ideas?
Have they made a way to move those tiny icons in the lower left to larger icons on the upper left like VsCode? As it stands, I can barely see them on my 4K screen and selecting them with a mouse cursor is like a pixel hunting contest. No go for me until they offer a way to change that. Beyond that it seems like a decent editor, but if I can't switch modes back and forth, that is a deal breaker.
Shortcuts still don't work on non-Latin keyboard layouts on Linux. For people who use languages with non-Latin writing systems, this is a show-stopper.
(there is, of course, a rich tradition of text editors with the same issue, including Vim and Emacs. They 1) have an excuse; 2) provide both workarounds and their own input method systems. Having this in a new program is nuts.)
Yes that was the primary issue I had when testing Zed in the past. Keyboard layout not working properly, shortcuts being unusable or un-remappable. Sad to see it's still the case for 1.0
Over the years I’ve tried plenty of fast, "snappy" code editors, but always found myself returning to Sublime.
Zed is the first one that got me to actually migrate. It does a great job of staying out of your way. Search and replace works seamlessly across multiple files with regex, and the extremely fast editing experience feels immediately familiar if you’re coming from Sublime. Being open source also gives confidence in its long-term viability.
I am posting this because I want to like and use Zed because it's so fast and responsive (Especially on my tablet, which JB turns into a space heater), and has neat functionality like being able to switch to whatever set of hotkeys you use. And I greatly respect the small binary/download size and fast install. From experimenting in Python and rust:
- Doesn't highlight typos in variable, functions, class/struct names etc. Doesn't highlight rust borrow-check, invalid method etc errors.
- Doesn't seem to understand either language beyond superficial syntax
- "Go to definition" (Ctrl + B) Doesn't do anything
- Doesn't show which versions are valid in Cargo.toml and pyproject.toml
- No ability to move functions/classes/structs etc to different modules
- Doesn't seem to understand rust feature gates
- Doesn't seem to understand what fields a struct has, or params a function has, let a lone what types are valid in them.
- Rename seems naive
Overall: It is taking a superficial view of the code base, and treating it more as text than a cohesive structure.
edit: Thank you very much for those who have pointed out I needed to disable restricted mode. This has added some introspection and in-line error handling. Some of my concerns are partially-mitigated. It seems when introspection and in-line editing/complete/data appears is inconsistent (But working in many cases), and I do not yet know what rules define this. Refactoring tools like moving are still absent. I will continue to use Zed on my tablet with the LSPs enabled, and observe.
I suspect you may be operating in "Restricted mode," aka it doesn't know if it can trust the directory. In that mode, the main tools like Rust analyzer are quite restricted. All of your complaints should be resolved once Rust Analyzer/basedpyrite are up and running.
I do think they should have a more obvious warning that the current directory is untrusted, right now the little green warning in the corner is way to unobtrusive and will result in many people having the same issue as you.
I thought Zed was using tree-sitter: https://zed.dev/blog/syntax-aware-editing? Shouldn't it address all of these issues? Does tree-sitter not understand Python (basically the most popular language out there) and Rust "beyond superficial syntax"? I thought its whole point was that it understands everything about a language's syntax because it builds a concrete syntax tree?
Did you market the project as trusted? Récent update (à few month) requises the trust to reenable the analyses feature
It took me a while to understand lol
At Somme point I though that the parker were broken in my codebase xD
As for your list of grievances, they all seem to boil down to the respective LSPs not doing their job? Does Ctrl-Alt-l (lowercase L, not Shift+i) include the language's server in the context menu, and are there any errors reported for it if it does?
It sounds like LSP isn’t working for you for some reason. Have you installed the extensions for those languages? These things are definitely supported via LSP
Zed is a great editor. I think they have done an excellent job and hope they are successful. That said, I do not feel compelled to switch to it. For a pure text editing experience, I've always felt most comfortable with Geany. When I want to extend the editor, I reach for Emacs. AFAICT, extending Zed means using Rust, and that's never going to happen.
Zed is a durable piece of software, rather than the current trend of cheap disposable software. Regardless of whether humans or agents use a tool like this, durability is a benefit for both.
Yes - the Claude ACP is nice, as I like to have a view of the code while chatting. Using just the terminal for dense/long running work feels like a handicap imo. It would be great if it supported more commands though!
I feel like it doesn't support some of the commands that manage Claude itself so think `/mcp` `/plugins` etc. Most of the common ones are configured to work though from what I've seen but the ones that do more configuration of Claude seem to be blocked.
It works 'well' with Claude Code, but you're going to be missing a lot of features. There's no display for sub-agents/teams, no ability to clear the context without starting a whole new thread window, no ability to view the current context or usage, etc. There's also no built-in ability to view or change the model's current effort level, which I think is a current limitation with the SDK.
I tried it for a bit and it was definitely usable and I got a few features built out, but I eventually moved back to using CC in the terminal. I'm sure they're working on it, though.
Does "local Ollama" or OpenRouter count? I fell into using Zed because there was zero sign-up friction when trying to set up a connection to a local Ollama LLM. Literally "drop-down, select the model you want"
Once I got that running on my machine it was also easy (literally a drop-down+ API key) to switch and explore using models on OpenRouter.
It lacks a lot of features, but IMO feels less "busy" than the terminal version, which I like.
Very recently Zed also gained support for parallel sessions, which is nice.
In general it's very obvious that a lot of effort goes into improving it, and it gets better with every release.
I used to run Claude code on terminal on zed. But the memory usage would balloon eating all my ram 128gb and have to kill the session every other day. I moved back to vscode. I don’t know if they addressed it
I really like Zed but it's most recent big changes to Git integration and Parallel Agents has forced me to disable both of those features as the way they work just didn't suit me and my workflow
For better or worse, my current workflow is to do most things through WSL on Windows 11. VSCode supports running the editor natively on Windows, but then having an agent or something inside WSL that lets me remote control what's going on there. Does Zed do anything similar?
Currently I'm just access the workspace in Zed via Windows Explorer, but I wonder if that's going to kneecap some of the integrations.
EDIT: nm, Zed supports exactly the same kind of remote editor session, via hamburger -> File -> Open Remote
Just opened my current TS/TSX project and everything is working as expected.
Performance is fantastic. I used Sublime for a decade and always missed its native performance after switching to VSCode due to needing first class Svelte, Vue, or Astro support.
The only thing that bothered me is that it enabled the Tailwind LSP even though I'm not using TW and I couldn't stop it. Had to disable that LSP completely in the settings:
Thank you, Zed team, for creating Zed. It’s clearly a labor of love, and I really want Zed to work for me. It seems like a quality project, it’s fast, and the base editor is easy to use.
I gave it weeks though, and the surrounding UI just never clicked for me. The various AI panels are confusing, the global search is awkward, and something about the type rendering just didn’t ever look right (maybe I’m hallucinating this?). I use VS Code only grudgingly, but I do think its ergonomics are actually pretty reasonable. I came from Sublime before that. I’ll keep trying Zed, and I hope you succeed.
Congrats to the Zed team! I've been using a combination of Zed + Gram [1] (which I predict may lag behind this 1.0 release in features/fixes). They are both nice, fast editors. However, I switched to Sublime Text 4 again recently and... I'm surprised to see how much clunkier Zed feels than Sublime. I can't put my finger on it, but Sublime, although lacking in features, feels considerably more polished and performant.
It's all in the details, eg. in sublime if you use the goto panel and highlight a file it will immediately show a preview, in zed you have to click on it, so you lose the snappy feeling.
I’ve tried it multiple times, but the performance issues on different Macs are too significant to ignore. I appreciate responsive UI, but I also prioritize sufficient battery life.
I tried zed sometime ago, and the limiting factor was devcontainer support. It looks like they’ve made some progress there https://zed.dev/docs/dev-containers
Feature-wise, Zed is still far from VS Code, but for me, the change has been worth it for the performance increase alone. I'm really happy with Zed, and I think it has a bright future ahead. Congratulations on the 1.0 release!
Congrats to the Zed team! I really like your editor and it works surprisingly well, althought there are a few rough edges still with the python experience.
The debugger in Python FastAPI and mainly Django is not working as expected. Hopefully soon will be fixed.
Good for them, but I wish they'd hurry up and catch up on some of the big missing features. Really hoping they'll accept my PR to add the missing call hierarchy feature before the GitHub issue turns 2 years old :)
Sort of a recurring theme, I find. They have 600+ issues that have been open for over a year, was hoping they'd drive down the backlog a bit before declaring victory
Go look at any large project, they have 500+/1000+ issues and many are ancient. Chrome, Firefox, you name it. I wouldn't be surprised if many issues have even been solved or need new reproduction steps but there's a difficulty to triaging all the issues as well.
Well done. I've been using Zed pretty much full-time for about 6 months now, and am happy with the experience.
There are still a few things PyCharm does better (debugging, for one), but overall Zed is very good and I haven't used PyCharm in months.
I still use CC in the terminal instead of inside Zed, and lazygit for reviewing git changes and other git actions (though Zed now does a decent job of the basics).
Here is a top-level comment for people who want to post the things they wish Zed had.
Request: please be sincere if you claim "the one thing that keeps me from using Zed is X" ... because let's face it, there is probably more than one thing. Editor ecosystems are complex beasts, and it is ok if people are slow to switch, but the "one thing" claims are rarely credible to me. Anyhow, such comments are rarely consistent with how human nature works. People find rationalizations, and that's fine. It would just be nice if people were a little more self-aware. Changing editors is harder for some people more than others.
My suggestion: if you want to make Zed better for your use case, please smart by explaining who you are as a developer, what you've used, what your expectations are. And be intellectually honest about the last time you've made a big change to your development workflow. End soapbox.
I hate to dismiss Zed for such a stupid reason, but I have tried to use Zed seriously many times and every time I stop because I can't get over the theme. I've tried basically every single theme I can find that is reasonably popular and they are all equally poor. VSCode and Cursor have vastly better default themes.
Does anyone have any suggestions here? I would love to use Zed more.
Zed is a very polished and nice product. I tried hard to use it, especially when I decided to migrate away from Emacs. But NeoVim gives me everything I was looking for in Zed: Speed, a polished UI, quick startup, not overloaded. So between Zed and NeoVim I decided for the latter. I use Neovide in GUI and neovim in terminal. I don’t use AI alongside nvim, but claude code helps me configure my config file in lua. So my neovim has a 10k lines config spread of several files. It is my simple text editor with super fast movements, and it can become a full blown programmable interface for my Obsidian, for my journal writing, for coding, writing documentation. It can be as complex as I need it to be. And it’s super fast.
Congrats guys! I've been using zed since a few months ago, I would consider myself a "light" user but I do enjoy the experience. My only sour point would be the not so smooth integration with claude code. But I've learmt to live with it for now
How is their emacs keymap support? I tried VSCode for a while but switched back to emacs because it was so slow and the keymap was not very good. I've been intending to try Zed but emacs is working well enough so the motivation isn't really there yet..
I've got emacs keybinds in my muscle memory and Zed works well for me, although there's no kill ring and the macro system is nothing like emacs. The former will be added at some point (there's an open PR), but I do not expect the latter will ever be comparable.
Looking at Zed (and Brave in another thread) I'm really firming up this idea that the "big funded private company model" for essential tech software is just most often idea. They don't know how to add features without also adding bloat and BS.
This is why I say Docker is the only real "success" story here. And note, I mean a success story for the users; Docker tries real hard to enshittify and fails, and that's good.
The only unusual thing is that I use ruby as primary glue language to everything, so in a way that editor (no longer maintained, similar to Linus' editor) is just a wrapper over ruby as such, and functionality in these scripts.
I have also found that it is not the editor that slows me down, but the need to have to think. This is also one reason why I try to make the specification as useful as possible. For instance, in one project that I use to compile everything from source, I use a ton of simple, mostly smallish .yml files that describe everything - allowed keys, allowed values, settings that are mostly just a pointer to where to fetch the source, how, how to compile it then and so forth. The ruby code then is mostly just a glue over that data. And that approach, while very simple, works quite well. Users can also modify settings, by modifying the .yml file or via commandline flags. And if need be, I could also use and populate a SQL database with that data (but for the most part, yaml actually suffices; I don't understand why people are so upset about yaml, and then only point at use cases where folks use mega-nested yaml files. These guys don't understand why simplicity is a benefit; admittedly yaml is not a perfect format either, I notice this when I have a long .yml file and then some forgotten ":" or "," due to manual copy/paste error, then it takes me a few seconds to notice what's wrong).
For each kind of warning, I wish there was a button that said "don't warn me again about issues like this one in this project." Then I could keep the interesting warnings (like undeclared variable) and ditch the ridiculous ones.
Isn't it just the default configuration of whatever LSP zed defaults to for PHP?
So you should be able to either configure the LSP to avoid that or disable the LSP server entirely.
however, i think LSP or integrated linters/typecheckers have been standard fare in editors for a while now (zed does seem to have a lot more set up by default, but i like the sane defaults most of the time). The "correct" solution would be to configure whatever lsp zed is running for the project the way you want, and reap the benefits even outside of zed. for php the tools are listed here: https://zed.dev/docs/languages/php the main one seems to be Phpactor and you should be able to configure it globally or per project https://phpactor.readthedocs.io/en/master/usage/configuratio...
but i understand the frustration, sometimes i try to navigate an ancient python codebase and it really is a sea of red
I feel like some people will be put off by all the "AI" mentioned by Zed, but you're sleeping on a top tier editor where you can just ignore the AI stuff if you don't want it. It's very high quality, and probably the reason I wont be renewing next year for JetBrains, unless JetBrains does something impressive, I thought by now they'd have a more native feeling IDE that handles most / any language instead of so many separate ones.
VS Code has gotten so bloated over the years. The gold standard of ST has spoiled me with simpler editors. Zed is the first time I felt like someone finally built an editor that is modern and has a rich set of features.
I don't know what your financial situation is, but given that the upgrade is an $80 one off payment (a new license is $99), that it's a per-user license (not per-machine), and that there were 8 years between Sublime Text 3 (2013) and Sublime Text 4 (2021) (only major versions require a new license), I personally think it's very reasonably priced.
That said, there are a lot of reasons why someone might be struggling with money. If I was the creator, I wouldn't object to someone using an unlicensed copy forever in that case.
I do suggest people pay though, it's cheap for a one-time purchase. The only reason I've ever seen the message at all is because I spent months being too lazy to dig up the license key to send to my work email. (That should also say something about how little I was being bothered by the message too)
https://github.com/kde/kate
I was confused until here because I remember using Sublime until it went paid
I’m not sure why though. I do not have the issue you do, but Sublime feels better.
It really there is no realy good ide or tools for php
You may be able to do this by editing a language server-specific config file in whatever arcane syntax they decided to offer. But there isn't any editor support for configuring languages servers, so it's a bit of a lift for a newcomer who just wants to turn off some warnings
With Zed, I feel like I'm being dragged into a modern style guide that I never agreed to. It would be nicer if I could make it my own by turning off those parts that I disagree with and keeping the rest. I know this is technically possible, but they've certainly not made it easy.
When you search, Zed opens a new tab, which I hate. Sometimes I just want to have a quick glance at some code and close the search using escape.
Telescope style search in vim, helix or JetBrains tools is so much better.
https://github.com/zed-industries/zed/pull/46478
for file search, edit in the persistent buffer can rename files
for grep, edits in the persistent buffer edit across files
and so on
The multibuffer result is so nice for "hands-on" search and replace.
How else are you going to have “a quick glance at code” *across* project files without using a new view for that? It sounds like you’re describing something impossible.
Zed’s across files search solves this in a similar way as other tools. Except that in zed you can also edit the code where your search results show up. Zed also has within file search.
You also have to validate the search, it doesn't start off immediately on its own, which annoys me a lot more.
Also now they've introduced this "agent first" layout which i cannot undo. They're strength is in perf, idk why try to reinvent the wheel w.r.t DX.
I use it for Elixir and ansible stuff. I may eventually be open to using it instead of PyCharm for python and/or Nova for C.
If there's one area I still feel that Zed lets me down is in pane management. Maybe I need to just learn more key shortcuts. But I spend a bit of time "managing" the secondary panes and having to switch back and forth between outline, files, search. I'm not sure what the solution is. Just wish the secondary panes weren't a scarce resource that had to be mux'ed betwixt.
I really like(d) the agent integration, but we're currently experimenting with Claude Code Desktop, and I really miss not having the tight integration. My guess is that I'm going to switch back to using the Pro subsidized version. I was getting by with ~$40-$50 a month. Now the company is paying $125 for Claude Team premium seat, and it's a lesser experience.
And Mitchell definitely seems to want to make Alacritty an easy target for conversion, he was just talking about being open to help support Warp with it: https://x.com/mitchellh/status/2049159764261925005
My daily driver is Zed developing on SSH remote servers on exe.dev.
It's crazy to think of all the dev tools I've churned through over the last 18 months but these two feel sticky.
Zed has everything I need in a unified pane. File editor, terminal, agents, SSH remotes. And it's fast and intuitive
exe.dev is the first "dev container" I've ever *loved*. The remote sandbox means `dangerously-skip-permissions` is safe. Being on the internet with good private / shared / public access saves so much time.
I also use https://conductor.build/ and GitHub but this is starting to feel clunky compared hacking directly against online live reloading apps.
A lot of the time I'm developing on a remote server using VSCode Remote-SSH. I mostly love it. But! It consumes a lot of memory. And not only that. At times it gets stuck in some infinite loop or such, and ends up consuming all memory on the machine, preventing all traffic. Takes a few minutes for the OS to finally kill it, so I can get back in. I'm pretty this is happening due to large collections of symlinks (the subprocess eating up the memory is rg). But also just JavaScript editing at times launches up a bunch of ts-servers consuming everything and more.
This is super scary, if I'm poking around on the prod server.
Looking for alternatives. Zed is on my list.
https://github.com/soates/Auto-Import/issues/127
That being said, I love the software and will continue to check back on it with the hopes that it sticks one day. Congrats on the 1.0!!
I wish GPUI could become the go-to Rust UI library and not just an editor backend.
For that, a couple of changes would be highly desirable: being able to switch the GPU backend from Metal to wgpu (so it could be mixed with vello, for instance), and the ability to integrate into an existing event loop like egui allows you to. If this were easy to do, I would switch from egui in a heartbeat.
e.g. its "run" gutter icons rely on context free grammar queries, but of course Scala allows to define main methods via inheritance from a class. Zed's extension api should let the extension report entry points via whatever internal mechanism it needs.
This also goes for the various testing libraries in Scala that because only tree-sitter queries are supported therefore need a custom pattern match for each library as they have their own mechanisms, rather than letting the extension provide its own test harness (easily handled by build tools automatically) - Zed should provide something similar to VS Code's Test Explorer and Testing API interface.
Also extensions can't add new UI, so you are stuck fitting to the recipe Zed team provides for you to plug into, and often enough this is not satisfactory.
BUT: It's very easy to just choose a different theme and there are plenty to choose from by now. It's even possible to make your own theme and they even have a first-party theme editor (https://zed.dev/theme-builder) which works great. They should maybe include some descriptions for each color instead of just the name but that's the only negative thing I can say right now.
I'd even say that it's easier to theme Zed than VSCode because there are fewer variables.
But anyway, yes these bland names do annoy me. R, C, Go, etc. Have an opinionated name but especially, that's not hard to google
Loving it so far! Thanks!
I'm trying right now the ACP with my own agent and I'm of mixed opinions but that's maybe because I care how my agent works. I believe that for the agent view a plain buffer with small ui elements would be the best ui for an agent conversation but I may have been spoiled by their text threads. I may spin a personal fork but the thought of tens of mins of compile time isn't that attractive.
Edit: I realized I started moving to terminal based editors like helix due to agents: claude -> codex -> custom pi, with the open sourcing of warp I was considering making a native integration for warp + pi but now I'm thinking zed's text threads (~17k lines) + pi might be a better way, any thoughts or ideas?
(there is, of course, a rich tradition of text editors with the same issue, including Vim and Emacs. They 1) have an excuse; 2) provide both workarounds and their own input method systems. Having this in a new program is nuts.)
Zed is the first one that got me to actually migrate. It does a great job of staying out of your way. Search and replace works seamlessly across multiple files with regex, and the extremely fast editing experience feels immediately familiar if you’re coming from Sublime. Being open source also gives confidence in its long-term viability.
Kudos to the team building Zed.
edit: Thank you very much for those who have pointed out I needed to disable restricted mode. This has added some introspection and in-line error handling. Some of my concerns are partially-mitigated. It seems when introspection and in-line editing/complete/data appears is inconsistent (But working in many cases), and I do not yet know what rules define this. Refactoring tools like moving are still absent. I will continue to use Zed on my tablet with the LSPs enabled, and observe.
I do think they should have a more obvious warning that the current directory is untrusted, right now the little green warning in the corner is way to unobtrusive and will result in many people having the same issue as you.
The latest x86_64 Linux build is 136MB. (https://zed.dev/docs/linux#downloading-manually)
As for your list of grievances, they all seem to boil down to the respective LSPs not doing their job? Does Ctrl-Alt-l (lowercase L, not Shift+i) include the language's server in the context menu, and are there any errors reported for it if it does?
That is the part that makes the space heater
But it is not for me. Multiple issues on Linux and high memory usage makes it a worse alternative to vscode and jetbrains.
Maybe it's better on OSX, but I dont use that anymore and why use an editor that treats your platform as a second class citizen?
Congrats to the team
What does it not support? I want to try and figure out if its shortcomings in the ACP/Claude SDK or if it's just features that Zed has yet to support?
I tried it for a bit and it was definitely usable and I got a few features built out, but I eventually moved back to using CC in the terminal. I'm sure they're working on it, though.
Once I got that running on my machine it was also easy (literally a drop-down+ API key) to switch and explore using models on OpenRouter.
It lacks a lot of features, but IMO feels less "busy" than the terminal version, which I like.
Very recently Zed also gained support for parallel sessions, which is nice. In general it's very obvious that a lot of effort goes into improving it, and it gets better with every release.
I’m hoping the roadmap contains support for even more things that extensions can do, such as rendering images or Markdown in-editor.
For better or worse, my current workflow is to do most things through WSL on Windows 11. VSCode supports running the editor natively on Windows, but then having an agent or something inside WSL that lets me remote control what's going on there. Does Zed do anything similar?
Currently I'm just access the workspace in Zed via Windows Explorer, but I wonder if that's going to kneecap some of the integrations.
EDIT: nm, Zed supports exactly the same kind of remote editor session, via hamburger -> File -> Open Remote
Just opened my current TS/TSX project and everything is working as expected.
Performance is fantastic. I used Sublime for a decade and always missed its native performance after switching to VSCode due to needing first class Svelte, Vue, or Astro support.
The only thing that bothered me is that it enabled the Tailwind LSP even though I'm not using TW and I couldn't stop it. Had to disable that LSP completely in the settings:
I gave it weeks though, and the surrounding UI just never clicked for me. The various AI panels are confusing, the global search is awkward, and something about the type rendering just didn’t ever look right (maybe I’m hallucinating this?). I use VS Code only grudgingly, but I do think its ergonomics are actually pretty reasonable. I came from Sublime before that. I’ll keep trying Zed, and I hope you succeed.
[1] https://gram.liten.app/
Side note: I know OpenAI doesn't have infinite money but why do I feel like they're going to buy Zed?
Though it's a pretty big bummer to see that extension improvements were removed from the roadmap.
I don't like how it loses the session when I reopen it randomly (and not randomly every upgrade).
The debugger in Python FastAPI and mainly Django is not working as expected. Hopefully soon will be fixed.
Create issue in the Zed Github repository?
https://github.com/zed-industries/zed/issues/9057 https://github.com/zed-industries/zed/issues/12629
Whenever I think to myself “yikes that sounds too hard”, my next thought is “well, Zed team could probably do it”.
Despite promising it for years and every comparable product having it.
That seems risky.
There are still a few things PyCharm does better (debugging, for one), but overall Zed is very good and I haven't used PyCharm in months.
I still use CC in the terminal instead of inside Zed, and lazygit for reviewing git changes and other git actions (though Zed now does a decent job of the basics).
Request: please be sincere if you claim "the one thing that keeps me from using Zed is X" ... because let's face it, there is probably more than one thing. Editor ecosystems are complex beasts, and it is ok if people are slow to switch, but the "one thing" claims are rarely credible to me. Anyhow, such comments are rarely consistent with how human nature works. People find rationalizations, and that's fine. It would just be nice if people were a little more self-aware. Changing editors is harder for some people more than others.
My suggestion: if you want to make Zed better for your use case, please smart by explaining who you are as a developer, what you've used, what your expectations are. And be intellectually honest about the last time you've made a big change to your development workflow. End soapbox.
Does anyone have any suggestions here? I would love to use Zed more.
Sorry, can't help it, every time I see Zed i think of the ZFS Event Daemon
This is why I say Docker is the only real "success" story here. And note, I mean a success story for the users; Docker tries real hard to enshittify and fails, and that's good.
My editor is dumb. No AI anywhere.
The only unusual thing is that I use ruby as primary glue language to everything, so in a way that editor (no longer maintained, similar to Linus' editor) is just a wrapper over ruby as such, and functionality in these scripts.
I have also found that it is not the editor that slows me down, but the need to have to think. This is also one reason why I try to make the specification as useful as possible. For instance, in one project that I use to compile everything from source, I use a ton of simple, mostly smallish .yml files that describe everything - allowed keys, allowed values, settings that are mostly just a pointer to where to fetch the source, how, how to compile it then and so forth. The ruby code then is mostly just a glue over that data. And that approach, while very simple, works quite well. Users can also modify settings, by modifying the .yml file or via commandline flags. And if need be, I could also use and populate a SQL database with that data (but for the most part, yaml actually suffices; I don't understand why people are so upset about yaml, and then only point at use cases where folks use mega-nested yaml files. These guys don't understand why simplicity is a benefit; admittedly yaml is not a perfect format either, I notice this when I have a long .yml file and then some forgotten ":" or "," due to manual copy/paste error, then it takes me a few seconds to notice what's wrong).
This kind of nonsense really takes away from stuff that actually matters.