Hidden Gems: Part 4

June 23rd, 2026

By now you know the drill: a fresh batch of Hidden Gems, no preamble required. 🪨⛏️➡️💎

Note: Many actions are mentioned in this post (such as editor: find all references). These can be found and run in the command palette, which you can open with cmd-shift-p (macOS) / ctrl-shift-p (Linux/Windows).

Comfortable Coding on Wide Screens

From the team:

Joseph Lyons

Joseph Lyons / Community

If you're working on a wide screen, editing a file can be uncomfortable. Your text sits on the far left (or right) side of the screen, forcing you to keep your head turned for long stretches of time.

A centered layout can be toggled to make things more comfortable. Run workspace: toggle centered layout:

The centered layout left and right padding can also be adjusted to your liking:

"centered_layout": {
    "left_padding": 0.2,
    "right_padding": 0.2,
}

Fast Multi-Project Keyboard Navigation

From the team:

Danilo Leal

Danilo Leal / Designer

Ever since we've launched Parallel Agents, my workflow has changed dramatically. I often have now at least three projects open in the same window, and inside of each of them, I might have one or more worktrees running. Then, for each worktree, I might be also jumping between a few different branches, either to just check the diff real quick or to merge main into it if it's been a few days since I last touched it.

What I love most about Zed is that I can quickly navigate and do all of these operations with a few keybindings. You could say it's a lot to memorize, but once you do, it just makes navigating super fast. And you can also always remap them to your liking. Here we go:

  • Start with option-cmd-o (projects: open recent) to see all of the projects in the window.
  • Then, use control-cmd-w (git: worktree) to open the worktree picker and select the one you want to be in.
  • You'll probably be in a branch already, which means you can use the command palette (shift-cmd-p) to quickly run git: pull or git: branch diff.
  • To switch your branch or create a new one, hit control-cmd-b (git: branch) to open the branch picker.
Quick run down of the flow described above.

Using Zed as EDITOR in the Integrated Terminal

From the team:

Tom Houlé

Tom Houlé / Software Engineer

Command-line programs that want to open an interactive editor traditionally use $EDITOR or $VISUAL environment variables to determine which command to use to open the user's preferred editor. Most of these commands, like git commit, wait until the editor process exits before proceeding, but that does not mesh well with how modern GUI editors like Zed open files. They return immediately and do not wait for the user to close the file before returning. In the git commit example, that means you instantly get an empty commit message.

Luckily, the zed command has a --wait flag that makes it behave more like a traditional editor. You can, of course, set EDITOR to zed --wait globally, but you may not want any editing session from your terminal to open a tab in Zed.

But if you want to stay within Zed when these commands open an editor, you can set EDITOR to zed --wait only within the integrated terminal in Zed, by adding this to your settings:

{
  "terminal": {
    "env": {
      "EDITOR": "zed --wait",
      "VISUAL": "zed --wait"
    }
  }
}

You may also want to set VISUAL to zed --wait in the same way, since many tools give it priority over EDITOR and EDITOR may be overridden by your shell initialization script.

Last but not least, not all tools split the --wait argument from the command name properly, so you may need to add a zed_wait helper to your PATH. It can look like this:

#!/bin/sh
exec zed --wait "$@"

Command Aliases

From the team:

Dino

Dino / Software Engineer

If you're anything like me, there's a handful of commands you use a lot, every day.

Even though searching in Zed's command palette is great, you can actually make it even easier to find the commands you use most frequently, besides defining custom key bindings, of course!

If that sounds like you, you'll be happy to find out about Command Aliases.

The command_aliases setting allows you to define word aliases for any command in Zed's command palette. Even better, if you're coming from Vim/Neovim, it makes it really easy to define mnemonics for your favorite commands.

Here are some examples:

  • Keep finding yourself using editor: [t]oggle [s]plit [d]iff? Just define tsd as an alias for it.
  • Are you addicted to checking the current diff with [g]it: [d]iff? Then gd would be a good alias for it.
  • Can't wait to open that pull request? Worry not, just define gcp as an alias for [g]it: [c]reate [p]ull request.

I think you get the point by now! When using an alias, you should also see the full command highlighted in the command palette, like so!

Before I head off, here's what my current command_aliases setting looks like. Feel free to use these, or the ones in the command mnemonics docs, as a starting point.

{
  "command_aliases": {
    "gd": "git::Diff",
    "gb": "git::Branch",
    "gbd": "git::BranchDiff",
    "gp": "git::Push",
    "gcp": "git::CreatePullRequest",
    "tsd": "editor::ToggleSplitDiff"
  }
}

From the team:

Joseph Lyons

Joseph Lyons / Community

If you're a Zed user, you're likely familiar with the multibuffer: a single, editable view that stitches together live excerpts from across your codebase. The multibuffer is used in a variety of ways in Zed:

  • Surface all references: editor: find all references

  • Show all errors and warnings in the project: diagnostics: deploy

  • Show various git diffs: git: diff and git: branch diff

  • Show project-wide search results (most notable, IMO): project search: search in new

I tend to hear that users love the multibuffer. Pairing it with multiple cursors to edit across many files at once can transform how you work. That being said, in the case of project search, I sometimes read feedback from users wanting the ability to see a compact overview of the search results, like in VS Code's "Search View."

@rupeshpadhye on X

Here's the mentioned view in VS Code:

The outline panel in Zed (outline panel: toggle focus) brings a similar experience:

It gives you a compact, scrollable list of all the matches in your project search. Note that the outline panel will also give you the same results overview for single-buffer searches (buffer search: deploy).

The project search and outline panel stay in sync: clicking a result in the outline panel scrolls the multibuffer to that excerpt, and placing your cursor in an excerpt highlights it back in the outline panel.

Additionally, when you are focused on a file and there is no active search, you will get a symbol outline view, identical to what you'd see in the outline: toggle modal:

Lastly, because the outline panel's content changes based on what you're focused on, you can click this button to "pin" the active outline.

Happy searching!

Share Your Hidden Gems

Let us know which of these gems you found most useful, and please share your gems so we can adopt the tips you can't live without.




Looking for a better editor?

You can try Zed today on macOS, Windows, or Linux. Download now!


We are hiring!

If you're passionate about the topics we cover on our blog, please consider joining our team to help us ship the future of software development.