DEV Community

Cover image for Zed: The Editor I Wish I Liked
Sby
Sby

Posted on

Zed: The Editor I Wish I Liked

Searching for a Unicorn

I've been hearing about this shiny new code editor, Zed, for quite a while.

On paper it was everything I wanted: performant (written in Rust), minimalistic (unlike the IntelliJ bloat monsters), a GUI (I'm not a fan of TUI editors for many reasons). So when I heard it got an official Windows release I knew I had to try it.

Unfortunately, it wasn't as sunshine and rainbows as I had hoped and I'll be sticking to VSCodium for the foreseeable future. Not because Zed is bad, it was everything they said it is. But no more than that.

In this post I'm laying out my very opinionated view of what a code editor should and shouldn't be. I know most won't agree with half of this, which is why I'm putting it here instead of a feature request. Even though Zed is still in development their design choices are already different and they're not going to change just to fit me.

Don't Take It Harshly

The app is performant. Startup time is almost half of VSCodium's on my machine. IntelliJ never stood a chance.

It is a proper GUI. The devs stick to what's familiar, you won't have any trouble migrating from VS Code.

And it's functional out of the box. You never feel like it's unusable because of some missing feature or weird design quirk.

Wishlist for Santa

Which makes the death by a thousand cuts all the more unfortunate.

These things may be ironed out as time goes on - or may not. This is just the stuff I care about.

Minimap Is Useless

I've grown reliant on the minimap in VSCodium to quickly spot error lines. Often in the editor the squiggly underline is tiny but on the minimap the whole line is highlighted. It saves me from squinting searching for it or re-running the compiler/linter to print out the line number.

Without this one feature the minimap might as well be a very thick scrollbar. Understandable as it's actually hidden most of the time by default.

Shortcuts Slow You Down

Continuing with finding errors: for some reason the feature that lets you jump to a file from a relative path and the line number only works through a specific keyboard shortcut and is missing from the command palette.

An annoyingly common scenario: copy file link with the mouse -> open the file finder (which forces you to put both hands on the keyboard because P is quite far from Ctrl) -> move hand back to the mouse to start scrolling the file you just opened.

GUI matters to me which is why I'll never switch to keyboard-only editors like Neovim or Emacs. Keyboard shortcuts only speed up typing which takes less than half of the development time. The real speed comes from mouse-enabled functionality when you're only limited by how fast you can aim. As they say "programming is more about reading code than writing it".

Pointless Command Palette

There are only two commands I ever use in VSCodium's command palette, everything else has always felt like bloat. The first is Go to File which was found orphaned and the other is Restart Server when the language server doesn't rerun.

Somehow I've had to use the latter way more often in Zed for both TypeScript and Rust. And the command palette itself is also only accessible via a shortcut. It’s not even to save screen space, instead of being at the top like VS Code, there's just an empty bar.

In an ideal world I wouldn't touch the palette at all. I don’t know what half the commands do and probably never will.

Clunky Layout

I've never understood the trend of hiding the menu bar that IntelliJ started doing. It only adds extra clicks for basic tasks like opening a project. Sadly Zed does the same.

You can make the menu bar permanently visible but instead of replacing or moving the title bar buttons it creates a whole new bar. And the other bar doesn't disappear even if you disable all the buttons on it. So you just have two mostly-empty bars taking up space.

menu bar

Search using the editor pane instead of the explorer pane was immediately annoying. When I'm searching I'm looking for a list of files so the explorer pane is just becomes wasted space while the search results steal the area I'm actually trying to use.

The tiny button to open the terminal pane being moved to the bottom right is understandable but the massive bar with the title the terminal window is taking up too much space. I've never felt the need to title my terminals but and you can change neither part of it the project name nor the shell name.

Zed doesn't have workspaces so the project name never changes and the only shell it supports is the default, which is powershell on Windows. What is the point of the title then?

terminal title

No Workspaces

And no, Zed doesn't have workspaces. A GitHub comment notes and many agree: Zed is fast but what's the point of being fast if you can't open large workspaces where that speed matters.

OOne of the main reasons I'm trying to move away from VSCodium is that workspaces are finicky. Extensions and language servers break all the time since workspace support is not a priority. Zed "solves" that by not having workspaces at all. We'll see how the support for it goes in the future but I’m not holding my breath.

Everything Requires an Extension

Relying on extensions isn't a problem on itself but Zed tries to be both minimal and ready-to-go and as fails at both.

The first time I opened a project, Zed instantly started installing the language extension. There's no option to disable it if you just want to use Zed as a lightweight text editor for a moment.

At the same time every file prompts you to install a matching extension like the annoying VS Code notifications. Worse - all the suggested extension typically does is regular lexer low-awareness syntax highlighting.

Dull Design

I'm not into ricing and dislike vanity extensions as fluff in the way but the the built-in themes are incredibly bland. Everything is washed out and low-contrast, not nice to look at.

This lack of color variety has real impact. In VSCodium, const values in TypeScript have a different shade of blue than regular values and rust-analyzer marks mutable variables and methods with an underscore. Zed lacks this syntax highlighting clarity.

There's Still Bloat

The second biggest reason I want to move from VSCodium is the amount of features I'll never use. It's better than base VS Code without all the AI "features" it's been getting lately (which seem to be the only features it's getting nowadays) but it's still presented as an IDE while I just want a text editor.

Still A Very Fast Horse

At the end of the day, Zed is a solid editor. It's fast, polished, and pleasant enough to use. But it's also clearly designed for people who don't work the way I do and that's fine. I'm glad it exists and I hope it gets better but for now the search for my perfect editor goes on.

Top comments (0)