zed-industries / zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
https://zed.dev
Other
50.48k stars 3.12k forks source link

Which-Key like menu #10910

Open DissolveDZ opened 7 months ago

DissolveDZ commented 7 months ago

Check for existing issues

Describe the feature

Many vim distros like LazyVim or NvChad and Doom Emacs or even Helix have a Which-Key popup for extra keybinds. It's extremely useful and you could even have an optional delay so you can complete the combination before it opens, you have a visual UI which tell you which key you can press to open which many for example you press W and then V to go to window settings and split it vertically. I'm currently using Zed as my main text editor and would love to have this feature as it helps a lot and makes it feel really like a Vim alternative.

This could become a crucial part of the Vim workflow and could be really essential to the Zed experience. Many editors have it as a plugin although some have it built-in, once Zed gets plugin support it might even be implemented through a plugin but I like the native way more

If applicable, add mockups / screenshots to help present your vision of the feature

These images aren't mine, I just found them on Google but I've tried all of these implementations of which-key. This might just seem like the command line when pressing : in Zed but it's very different when actually using

Doom Emacs: image

NvChad: image

Helix: image

JosephTLyons commented 7 months ago

This would be useful outside of Vim mode as well, with just the standard bindings, which was suggested here:

robclancy commented 6 months ago

Yep for me if this had better vim multi cursor (I think I just need to rebind things to get the editors version to work, ctrl+d is being overridden by vim right now), bindings like in doom emacs with whichkey and probably less account/copilot stuff I'd use it as my main editor when not using PHP.

theherk commented 6 months ago

Screenshot 2024-05-16 at 12 34 31

Just wanted to add a screenshot of a Neovim mini.nvim mini.clue implementation, which is somewhere between Helix's implementation and which-key. This is just for ideation.

jellydn commented 4 months ago

Just a thought, we could have a plugin similar to https://github.com/VSpaceCode/vscode-which-key if Zed could expose APIs.

benswift commented 2 months ago

Just a +1 for this. One of the things I miss from Emacs is the ability to easily see what a key is bound to in the current context.

I don't even think it needs to have the whole "popup all the possible binding completions" mini-pane; sometimes it's just that I want to add a convenient keybinding for something and I want to make sure I'm not shadowing some other thing which might be useful

FormalSnake commented 2 months ago

Also a +1.

I know someone who would fully switch if this gets implemented.

otomist commented 2 months ago

will give this a shot

bohdanivanchenko commented 2 months ago

This Which-Key style menu would be an incredible addition to Zed! As someone coming from Neovim, I really miss having that visual guide for keybindings at my fingertips. It's not just about remembering shortcuts - it fundamentally changes how you interact with the editor.

Having a Which-Key menu in Zed would:

  1. Dramatically improve discoverability of features and commands
  2. Reduce cognitive load by providing visual cues for complex key sequences
  3. Make it easier for new users to learn and navigate Zed's capabilities
  4. Allow power users to create and organize custom keybinding hierarchies

Importantly, it bridges the gap between command-line efficiency and GUI intuitiveness. You get the speed of keyboard-driven workflows with the discoverability of a graphical interface. This could be a game-changer for Zed, making it even more appealing to developers coming from Vim/Neovim or Emacs backgrounds while still being accessible to those new to modal editing.

The ability to see available options as you type would make Zed feel incredibly responsive and "smart". It's one of those features that, once you've used it, you wonder how you ever lived without it. Implementing this natively would give Zed a significant edge over editors that only offer it via plugins.

hanumanman commented 2 months ago

Would be great to have visual hints for marks/registers.

image

MaxistheSpy commented 2 weeks ago

Id love a which key like menu I keep having to tab back to https://github.com/zed-industries/zed/blob/ec95a33d8cfc2ccbf59764d8cd00a779bdb63928/assets/keymaps/vim.json#L287-L337 here to find where keys are defined and its makes learning a lot harder