22 votes

Anyone else using the Zed editor?

A month ago I decided to take a look at Zed. It hasn't hit 1.0 yet so I wasn't sure if I'd like it. But I haven't opened any other code editors since the first launch. It's open source and seems to be cross-licensed with multiple free software licenses.

Beyond the nice GUI performance from their use of native code it's clear that my use of VSCode forks for the last few years has kept me held back. There are lots of little things I love about Zed like how you can edit code within the search results page. Or how you can use your own self-hosted LLM without the outrageous shenanigans required to do so with Cursor.

27 comments

  1. [13]
    smores
    Link
    Warning: this is mostly just me whinging, if you don't have the specific issue I had, this probably don't matter. The actual developers I interacted with at Zed have been very kind and thoughtful,...

    Warning: this is mostly just me whinging, if you don't have the specific issue I had, this probably don't matter. The actual developers I interacted with at Zed have been very kind and thoughtful, generally speaking.

    I happily used Zed for a few months, but I've had a pretty frustrating experience with them that's led me to eventually switch to Helix (which I'm very happy with).

    Way back at the beginning of the year, I (and several other users) reported an issue with Zed's handling of special keys on click events. Unlike every other text editor I've used, Zed only considers modifier keys that are held during the mouse up event when determining behavior for a click event.

    On some laptops (like my Framework), the trackpad reports pretty delayed mouse up events. Maybe a fraction of a second after I actually lift my finger.

    The result is that I (and several other users, this was reported in at least three separate issues) would click on a variable and then (after I lifted my finger from the trackpad!) quickly press, e.g., Ctrl+D to expand the selection to that term. Instead, Zed would interpret this as a Ctrl+click, and go to definition, at which point I would find myself making changes to, e.g., a random type declaration file in a node module.

    So, no big deal, Zed is open source, so I fixed it. This took a while to get released, but I could also just run my own local build in the meantime, so that was fine!

    Only then it got reverted. This drives me insane, like no one looked at the git blame to see why this was the way it was. The reasoning here (this layer of the system should match web standards) is totally fine to me, but the outcome (so let's reintroduce this bug) is pretty frustrating.

    So I attempted to re-fix the bug, and that was rejected because it violated web standards. Again, this is fine, but... Like how do we fix this bug?

    Anyway, I got sick of maintaining a fork/local build and switched the Helix. That bug was driving me nuts multiple times a day and it was really frustrating that no one at Zed was interested in helping me fix it (again).

    10 votes
    1. [2]
      hungariantoast
      (edited )
      Link Parent
      Especially for mouse input (but let's be honest, for every other type of binary up-down input too) the text editor should really let users specify if a keybind/shortcut responds to mouse-down or...

      Especially for mouse input (but let's be honest, for every other type of binary up-down input too) the text editor should really let users specify if a keybind/shortcut responds to mouse-down or mouse-up.

      Adherence to web standards isn't a good reason to deny users the ability to configure their text editor to work for them.

      6 votes
      1. smores
        Link Parent
        It's especially frustrating because VS Code, for example, which is literally a website running in Chrome, does not have this behavior. Like, sure, make your low-level UI layer follow web...

        It's especially frustrating because VS Code, for example, which is literally a website running in Chrome, does not have this behavior. Like, sure, make your low-level UI layer follow web standards. But if that default behavior doesn't actually work for text editors, you then have to build another layer that provides the correct behavior. I'm just frustrated that they would merge a "fix" that seemed to only be necessary for standards adherence without fixing (or even really being open to fixing) the actual user facing bug that it caused.

        4 votes
    2. [2]
      DeaconBlue
      Link Parent
      That sounds like an extremely annoying bug. The kind of bug that doesn't take terribly long to deal with, but the kind that are frustrating because of the intermittent nature.

      That sounds like an extremely annoying bug. The kind of bug that doesn't take terribly long to deal with, but the kind that are frustrating because of the intermittent nature.

      3 votes
      1. smores
        Link Parent
        Thank you for affirming my misery haha. It truly got under my skin, exactly because it was non-deterministic. Even worse was that it was fixed for most of the year, so I had re-developed the...

        Thank you for affirming my misery haha. It truly got under my skin, exactly because it was non-deterministic. Even worse was that it was fixed for most of the year, so I had re-developed the muscle memory and constantly forgot that it was broken again! Also sometimes I would manage to make several edits to the type declaration file before realizing, sometimes even managing to close it and then having to find it again to undo the changes I made 😩

        4 votes
    3. [2]
      lily
      Link Parent
      I had this issue too, actually! It was one of the reasons I gave up trying Zed and moved back to Sublime Text. I was trying to figure out how to disable the go to definition feature entirely, but...

      I had this issue too, actually! It was one of the reasons I gave up trying Zed and moved back to Sublime Text. I was trying to figure out how to disable the go to definition feature entirely, but couldn't figure it out. I don't think it was Ctrl+D for me (it was some other Ctrl binding, I don't remember), but what I remember matches up with your description here. My laptop's touchpad also has poor palm rejection, and is offset to the left, which I think exacerbated the issue.

      2 votes
      1. smores
        Link Parent
        We're not alone! Hahaha it actually seems like quite a lot of folks have this issue, on sufficiently varied hardware that it seems like maybe only Macbooks don't have this issue?

        We're not alone! Hahaha it actually seems like quite a lot of folks have this issue, on sufficiently varied hardware that it seems like maybe only Macbooks don't have this issue?

        2 votes
    4. [3]
      Narry
      Link Parent
      I've been using Helix for awhile myself and I have my config.toml customized to hell and back. It's half modal editor half text editor now, due to 30 years of muscle memory making it tough to...

      I've been using Helix for awhile myself and I have my config.toml customized to hell and back. It's half modal editor half text editor now, due to 30 years of muscle memory making it tough to convert to modal editing. Now things like hitting return or backspace or delete will immediately drop me into INS mode, and to give myself a visual indicator I have a hacky thing where I change themes when I drop into various edit modes versus when I exit.

      The really crazy stuff is what I do with keyboard shortcuts. I missed VScode's ability to move a whole line up or down (I couldn't figure out how to do it in Helix), so I made my own, same with duplicating a selection (down only, I couldn't figure out how to do it going up without it getting weird.) It basically deletes the yank registry, though, so it's not ideal...

      I also have a few "omni" keys, like if I hit "q" from Normal mode it presents me with a quit menu that lets me perform q q! qa wq wq! wqa wqa! with just a few keystrokes.

      It also caused me to permanently map my caps lock key to become "escape" because I only rarely ever use all caps, and I got tired of 30 years of "accidentally mess up my login password" button being a thing. I'm still pondering if there's something else I think would be better suited for that button, but for now "escape" is good enough.

      1 vote
      1. [2]
        smores
        Link Parent
        Nice! I used neovim for a while a few years ago, so I'm pretty comfortable with the modal editor aspect, but honestly it's cool that you can do so much in INS mode. I do really like the...

        Nice! I used neovim for a while a few years ago, so I'm pretty comfortable with the modal editor aspect, but honestly it's cool that you can do so much in INS mode. I do really like the configuration system, especially the LSP configuration system. I just added the LTeX plus LS for my blog repo so that I can get live spelling and grammar check while I type, and it was like two lines of config.

        I personally have caps mapped to the Compose key, so I can more easily type em dashes and curly quotes (and, like, the trademark and copyright symbols occasionally). My escape key is in a pretty accessible location on my desktop keyboard, but I think I'm probably gonna map jk to escape for my laptop

        2 votes
        1. Narry
          Link Parent
          The flexibility is really appreciated, for sure. It took me a bit of doing to get it set up to be able to let me try out Odin, but once I figured out what it was asking for it wasn't that big a...

          The flexibility is really appreciated, for sure. It took me a bit of doing to get it set up to be able to let me try out Odin, but once I figured out what it was asking for it wasn't that big a deal. Most stuff just kinda works with Helix out of the box, and being able to just type hx --health and whatever language I'm interested in is very handy. It just feels out of the box more complete than neovim, which I was always endlessly fiddling with. Helix I fiddled with for awhile, then I was satisfied and started to actually code. Very strange concept, not sure that's allowed.

          I should look into the compose key for my terminal. I'm on macOS so I'm very accustomed to being able to use the Option key to accomplish all of that; — – - … ¬.¬ ™ ® © ç ñ etc. “” ‘’ «» etc, however Option is treated as "Alt" by my terminal. Perhaps I should see if I can get it to allow Option to function as intended and move Alt's functionality to the caps lock key. At the moment, the escape key is literally mapped at the keyboard configuration level with my keyboard mapping software.

          1 vote
    5. [3]
      TurtleCracker
      Link Parent
      It feels odd that they reverted a fix that closed issues without also reopening the original issues (or creating new ones).

      It feels odd that they reverted a fix that closed issues without also reopening the original issues (or creating new ones).

      1 vote
      1. [2]
        smores
        Link Parent
        From what I can tell, no one realized they reverted a fix. Someone was in adjacent code, making tangentionally related changes, and decided to include a "realignment" with web standards for their...

        From what I can tell, no one realized they reverted a fix. Someone was in adjacent code, making tangentionally related changes, and decided to include a "realignment" with web standards for their click events. No one checked why it was the way it was (I guess), and the bug doesn't seem to happen on whatever machines most Zed devs use, so I guess no one noticed?

        3 votes
        1. teaearlgraycold
          Link Parent
          That’s the power of being on the common platform (Apple in this case). This comes up a lot where someone might have a strong belief that say Svelte is better than React. But swimming against the...

          That’s the power of being on the common platform (Apple in this case). This comes up a lot where someone might have a strong belief that say Svelte is better than React. But swimming against the current has unforeseen costs.

          2 votes
  2. [3]
    lynxy
    Link
    After my thread a month or so ago I switched to Zed from VSCodium, which was starting to irritate me with how Microsoft was fudging with extension access. I love it- it still has a rough edge or...

    After my thread a month or so ago I switched to Zed from VSCodium, which was starting to irritate me with how Microsoft was fudging with extension access.

    I love it- it still has a rough edge or two, and there are a number of tiny things I'd love to be able to change (text truncation in the project structure view, for example), but it's so performant and almost everything else has a toggle or option! The extension ecosystem is reasonably comprehensive, despite the software not having reached 1.0, and I hope this only improves with time.

    6 votes
    1. [2]
      2c13b71452
      Link Parent
      I went the other way, switched to VSCodium from Zed, for two reasons: I don't know if it's a bug, or what, but if I leave a file open in Zed then Syncthing can't synchronise it correctly. It used...

      I went the other way, switched to VSCodium from Zed, for two reasons:

      • I don't know if it's a bug, or what, but if I leave a file open in Zed then Syncthing can't synchronise it correctly. It used to work, and then one day it didn't work.
      • Surprisingly, VSCodium is faster where it matters to me, despite Electron vs native Rust interface. I have a markdown file with ~30K lines and Zed was extremely laggy on this. VSCodium works ok, it's just a better optimised app I think.
      2 votes
      1. smores
        Link Parent
        Zed's default markdown-oxide LS seems to have some pathological edge cases. It has more than once pinned all of CPU cores at 100%! I tried to open an issue about it but was redirected to the...

        Zed's default markdown-oxide LS seems to have some pathological edge cases. It has more than once pinned all of CPU cores at 100%! I tried to open an issue about it but was redirected to the markdown-oxide repo, and I didn't know how to reproduce the issue.

        2 votes
  3. Akir
    Link
    I currently have it installed but have yet to use it for anything substantial. The nice thing about it is that it’s very snappy, so it’s been my “fix the one file real quick” editor of choice.

    I currently have it installed but have yet to use it for anything substantial. The nice thing about it is that it’s very snappy, so it’s been my “fix the one file real quick” editor of choice.

    3 votes
  4. [2]
    dorkus
    Link
    I use it. I like it for Go, but I still reach for IntelliJ (company provided) for Ruby and PHP. Zed just doesn't work as well for those. The speed is amazing, and really is my main reason for...

    I use it. I like it for Go, but I still reach for IntelliJ (company provided) for Ruby and PHP. Zed just doesn't work as well for those. The speed is amazing, and really is my main reason for using it.

    It is a little buggy, I wish the Vim bindings were a little cleaner, but overall, I'm a fan.

    2 votes
    1. teaearlgraycold
      Link Parent
      It works well for me with Typescript and Rust. It's clear the plugin ecosystem isn't super fleshed out but I haven't hit any walls yet.

      It works well for me with Typescript and Rust. It's clear the plugin ecosystem isn't super fleshed out but I haven't hit any walls yet.

      1 vote
  5. [2]
    scarecrw
    Link
    I haven't actually tried it, but based on this post I'm interested in giving it a go. I'll probably still need to keep vscode around for specific uses, but I don't have any attachment to it in...

    I haven't actually tried it, but based on this post I'm interested in giving it a go. I'll probably still need to keep vscode around for specific uses, but I don't have any attachment to it in general.

    Speaking of local LLM use, does anybody have a recommended coding model for trying it out? I gave it a shot a while back, but between fussing with vscode extensions and the poor accuracy:speed ratio I gave up on it.

    2 votes
    1. teaearlgraycold
      Link Parent
      That depends on what hardware you have available. I think unless you've got $10,000 in compute at hand performance will be far below the hosted models. But I have found Qwen Coder to be useful for...

      That depends on what hardware you have available. I think unless you've got $10,000 in compute at hand performance will be far below the hosted models. But I have found Qwen Coder to be useful for web dev even on my little 24GB MacBook Air. But I only spin it up when I don't have internet access.

      3 votes
  6. crulife
    (edited )
    Link
    I use it exclusively in my personal, potentially open-source Rust projects. With the opencode / bigpickle / glm-4.7 model -- which are still free of charge. It's pretty great, and obviously works...

    I use it exclusively in my personal, potentially open-source Rust projects. With the opencode / bigpickle / glm-4.7 model -- which are still free of charge. It's pretty great, and obviously works as a pure non-AI editor well too. I pair it with Steve Yegge's beads project for better control and a sort of memory for the agents.

    For professional work, I've found that Cursor still beats it, especially in its Auto mode. Which is sad, the Cursor editor is pretty abysmal compared to Zed.

    2 votes
  7. [3]
    marcus-aurelius
    Link
    I want to move to Zed as soon as the git integration becomes better, I know I could use some external tool like Gitui or Sublime-merge but being able to edit my files during diffs inside the...

    I want to move to Zed as soon as the git integration becomes better, I know I could use some external tool like Gitui or Sublime-merge but being able to edit my files during diffs inside the editor with all the other functionality it's invaluable to me.

    Until side-by-side is available, I will still use VS Code.

    2 votes
    1. [2]
      teaearlgraycold
      Link Parent
      Are you in more of an eng mgr role? I've never found my work as an IC dev to require dedicated merge tools.

      Are you in more of an eng mgr role? I've never found my work as an IC dev to require dedicated merge tools.

      2 votes
      1. marcus-aurelius
        Link Parent
        More than my role, it's related with working on a monorepo, good merging tools are always required to solve merge conflicts specially when I'm assigned long projects.

        More than my role, it's related with working on a monorepo, good merging tools are always required to solve merge conflicts specially when I'm assigned long projects.

        2 votes
  8. d32
    Link
    I gave it a pass previously because of the licence, but now that it is open source, I went back and tried it again - and I'm loving it. I'm just a hobby developer now, so don't know how much my...

    I gave it a pass previously because of the licence, but now that it is open source, I went back and tried it again - and I'm loving it. I'm just a hobby developer now, so don't know how much my opinion counts, but after years of being stuck in electron ides, the main selling point of Zed really hits hard - it is very snappy. It does several new things quite nicely, as others have mentioned. The only thing that's missing for me is support for modern open source coding agents like Cline or roo code, but it has a basic, though unofficial support for simpler proprietary agents like Cline Code, Github copilot, Openai codex, Gemini and more. Good enough so that I was able to create a simple physics-based game in a language I don't like using library I don't know :)

    2 votes
  9. donn
    Link
    I've been meaning to try it. I didn't know it was open-source, I thought it was paid which is why I haven't bitten yet.

    I've been meaning to try it. I didn't know it was open-source, I thought it was paid which is why I haven't bitten yet.

    1 vote