Working with Zed for a week
Tags: review, productivity, editor, zed
Published: 2024-02-01 19:47:32

I took [Zed](https://zed.dev/) for a spin this week, and this post covers what I noticed whilst using it as my day-to-day editor.

**I love it, and I'm probably going to stay with it (but I miss a debugger).**

This is what Zed is:

> Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It's also open source.

## Projects worked on:

These are the projects I managed to work on this week with Zed:

- Python project - 4m+ lines of code
- Go project  - 7k+ lines of code
- Markdown - This blog post

## No debugger

Honestly, I thought I would miss this a lot more than I did. However, to remove VS Code from my setup, I'd need the debugger. Firing up a second editor, to find the files, to then debug is a little tedious.

## It's fast

Apart from searching for a symbol, which feels slower than VS Code, Zed seems quicker overall. I prefer the slim-down nature of it in comparison to VS Code. It certainly reminds me of Sublime Text, which I loved (and also now struggle to remember why I stopped using it!).

## Collaboration UI

I managed to get a colleague to pair with me for 15 minutes using Zed, and it took us a wee while to get used to what the user interface was telling us. It's handy though:

- Screensharing - Although we couldn't seem to configure which screen to share, so it shared my work diary, not the screen with the editor on. You live and learn.
- Audio 1:1 calling - This was the first thing we tried, and the quality levels were very good.
- Channel audio - It seems like you have to join the audio even if you just want to use the text chat. Maybe this was an oversight by us though?
- Channel messaging - Slight [bug](https://github.com/zed-industries/zed/issues/6706) that you couldn't copy the messages from the chat window.

I have one slight concern about this feature: Normally all this context is in Slack (for me at least), but it would be in Zed. Does this lose a collaboration touch point with the rest of the team who aren't in Zed? One to ponder. You may want to pull in a Product Manager, or a designer into the conversation (They are generally saviours to any given situation). I highly doubt they would install an editor to do that. It does, however, remind me of the early 2000's when engineers had to use IRC to communicate with each other. It's a little bit secret, which makes it fun.

## Git integration

This was a surprise to me, as I hadn't anticipated this impacting me. I use `git` on the CLI. I've never used a UI, and I struggle with them for `git`. However, what I did miss was the little "git insights" you can get in VS Code. e.g. "Developer Alice modified this code last week".

This gives you a sense of "freshness" of the code. Back to `git blame`.

## Keymaps

Although it says I was using the VS Code one, there were a [few keymap changes](https://github.com/benmatselby/dotfiles/blob/main/zed/keybindings.json) I needed to make. No big drama.

## Outline view

It would be nice to have the Outline View as a scrollable dock item, rather than a modal. It feels prohibitive as a modal, and it doesn't allow you to collapse certain symbols. So in a codebase that may have 15 classes in a file, you couldn't focus on the class you want to look at. It's all expanded.

## Unused variables

It would be good to highlight unused variables, assuming this comes from the language server. It wasn't a biggy, as pre-commit hooks captured it, but it slows you down ever so slightly.

## Copilot

Easily configured, but I did miss having Copilot Chat. You can use the [Open AI integration](https://docs.zed.dev/general/assistant-panel), but I already have a license for GitHub Copilot, so not sure I want to pay for both services.

## It seems to "Just work (tm)"

I've pretty much [automated the install for VS Code](https://github.com/benmatselby/dotfiles/tree/main/vscode), but it feels like there is a "lot going on". That doesn't feel the same with Zed. I opened a Python file for the first time, and it downloaded the language server. Same with the Go codebase.

Apart from the debugger, it had the right level of tools I needed. I also work on TypeScript and PHP projects, so that will be the next test to see how it handles those languages.

## Summary

I'm going to stick with it. I suspect I will fire VS Code up when I need to debug something, but let's see how we go with Zed for a little bit longer.

---

Photo by <a href="https://unsplash.com/@diegojimenez?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Diego Jimenez</a> on <a href="https://unsplash.com/photos/lone-road-going-to-mountains-A-NVHPka9Rk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
  
---

### See also

- [Automating the startup of a dev workflow](https://benmatselby.dev/post/2024/automating-the-startup-of-a-dev-workflow/)
- [My dotfiles](https://github.com/benmatselby/dotfiles)
- [Setting up k9s skins for different Kubernetes clusters](https://benmatselby.dev/post/2023/setting-up-k9s-skins-for-environments/)
- [Collaborative Communication Tools](https://benmatselby.dev/post/communication-tools/)