Are we Helix yet? #33580
Replies: 50 comments 124 replies
-
|
As a veteran Kakoune user (and source code contributer), I would encourage anyone interested in the selection-first modal editing style to study Kakoune itself. Helix still has not caught up to everything that made Kakoune such a beautifully designed and influential piece of software; as such, |
Beta Was this translation helpful? Give feedback.
-
|
Awesome, thanks for making this tracking issue. 1) Can we get some example PRs that added Helix functionality? 2) Similarly, by what mechanisms does "helix_mode": true,` actually gate code: this would also be helpful in tracking. 3) One of the most useful things about Helix is discoverability -- the visual keymap popups continue the trend of intermediate highlighting -- allowing speed with optional feedback. Has there been any discussion on mechanisms for this? I realize it's probably early, but worth bringing up now as that's a large part of what makes Helix so usable, I think it's fair to say. |
Beta Was this translation helpful? Give feedback.
-
|
I filed one more issue #33838 that has to do with visual mode. I also added an extra 100$ to the bounty so it's 300$ now 😊 |
Beta Was this translation helpful? Give feedback.
-
|
I think a good next step to bridge the gap with Helix would be introducing a new mode: Then we could add some simple features to it to prove that it's worth existing separately from Vim's
And then later, someone could implement #31561 which seems a bit trickier. @ConradIrwin would you be open to a new mode that works like this? :) |
Beta Was this translation helpful? Give feedback.
-
|
I'm encountering a strange behavior: when I delete a character with d in Helix normal mode, it switches to Vim normal mode. Has this already been reported? |
Beta Was this translation helpful? Give feedback.
-
|
Seems matching mode also aren't implemented yet ? |
Beta Was this translation helpful? Give feedback.
-
|
Why are keybindings just protocols: Why aren't they actually implementations with interfaces. Each new time someone thinks of using a keybinding paradigm in their app, they have to half cook the implementations. Instead the interface should be there to plug, only part left to him should be to wire the interfaces to parts of their app. |
Beta Was this translation helpful? Give feedback.
-
|
This is just a thought, but one of my favorite features of Helix is the command palette that shows up and shows your options when you're using a sequential keybind: Dunno how far-fetched it would be to get something like this working in Zed. |
Beta Was this translation helpful? Give feedback.
-
|
Is a hybrid mode possible? Emacs keymap in the insert mode, and helix otherwise? |
Beta Was this translation helpful? Give feedback.
-
|
I've opened #34765 to better match helix's insert and append. |
Beta Was this translation helpful? Give feedback.
-
|
I feel like yanking with the cursor on top of a single character should only yank that character, and not the whole line. A workaround is to enter visual mode before yanking. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
I've encountered an issue with vim::SelectNext command in Helix mode. When I try to select the next occurrence of a word, it unexpectedly includes the two following appearances instead of just the immediate next one. Can anyone explain why this behavior occurs? {
"context": "Editor && vim_mode == helix_normal && !VimWaiting && !menu",
"bindings": {
"space n": "vim::SelectNext",
}
},Bildschirmaufnahme.2025-07-29.um.14.46.30.mov |
Beta Was this translation helpful? Give feedback.
-
|
I'm new to
Then we have #35687 and #34060, great to see helix development picking up some steam! |
Beta Was this translation helpful? Give feedback.
-
|
Double pressing v (entering visual mode and exiting it) returns to vim's normal mode instead of the helix normal mode |
Beta Was this translation helpful? Give feedback.
-
|
Another issue for your mighty list: subword movements do not select in Helix mode |
Beta Was this translation helpful? Give feedback.
-
|
Now that alt i,o,n,p have landed its really exposing the small subset of textobjects that are available in zed. |
Beta Was this translation helpful? Give feedback.
-
|
Currently Zed supports lower case 'x' to "Select entire line or multiple lines, extending downwards" which is great! However, Helix's recommended defaults are to also have 'X' do the same thing, but going up. Even if Zed doesn't enable it by default, it would be nice to have an option to map 'X' to have this behavior. I don't see any Zed key map actions that would enable this. |
Beta Was this translation helpful? Give feedback.
-
|
Opened a PR that adds some lipstick on the helix keymaps section #43735
|
Beta Was this translation helpful? Give feedback.
-
|
It would be nice to match Helix's In the context of Zed, I would expect it to goto the previous tab you were on within the same tab group. Essentially ctrl-tab, but just select the first entry without opening the tab picker. The use case here is quickly jumping back and forth between two files within a tab group. I was trying to map this myself, but couldn't find an action that went to the last accessed tab like that. |
Beta Was this translation helpful? Give feedback.
-
|
It seems that "yes, we are now helix"! 🔥
The work continues though, for sure Thanks to everyone involved! |
Beta Was this translation helpful? Give feedback.
-
|
Do we have debugging keybindings yet? I tried setting a breakpoint but didn't see that |
Beta Was this translation helpful? Give feedback.
-
|
Would also be cool to get the |
Beta Was this translation helpful? Give feedback.
-
|
I find myself really missing Helix' |
Beta Was this translation helpful? Give feedback.
-
|
hey guys and girls
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Surround add/replace/delete was recently added, but currently buggy - removes symbols that do not surround the current object #47155 |
Beta Was this translation helpful? Give feedback.
-
|
The increment/decrement actions don't work for dates (YYYY-MM-DD) as they do in Helix.
In Helix I can increment the day or month while Zed always increments the year, no matter where the cursor is. |
Beta Was this translation helpful? Give feedback.
-
|
does anyone know how to remove the vim keybindings from the which-key menu?
|
Beta Was this translation helpful? Give feedback.
-
|
I've stopped maintaining the open issues list because zed's tagging of helix issues with the helix label is much more comprehensive and efficient: https://github.com/zed-industries/zed/issues?q=state%3Aopen%20label%3Aarea%3Aparity%2Fhelix in the main post, I just link to it and frankly, why did I not do it sooner... oh well.. but if you'd like to keep posting the issues you open, here in this discussion, I think it's still helpful |
Beta Was this translation helpful? Give feedback.




Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The definitive meta-discussion to make Helix mode on Zed truly great
Zed contains a nascent community-supported Helix implementation. While the basics should work, there are many features missing, and a significant number of smaller differences between how things work in Helix vs Zed. Zed's team would love to have your help working on these!
The point here is to join forces and capture the users input in the best way possible, listing what already works and what doesn't and bugs we find, so do comment anything you find that is not here yet
The state of helix in zed
As of Dec 19, 2025... Are we Helix yet?
Yes, we are helix!
After many issues closed, many PRs merged, and incredible work by open-source contributors and zed's own team
More info here
The work continues though, there is still a comprehensive list of missing features / bugs. You can see the open issues list below.
Pick one and become a contributor!
Notes
Some of the open issues/missing features
You can find open issues by searching with the
helixlabel like this or by making a generic search of the term helix like thisSome PRs that already got merged (contributors can use them as inspiration)
Table of commands still to be implemented
Toggle
alt-.ctrl-i,ctrl-o,ctrl-shelix_pasteaction that maintains selection after pastealt-u,alt-Uspace y,y|,alt-|,!,alt-!s,Salt-salt-(,alt-),(,)*,Alt-*nm i,m am s,m r,m dz,Zhelix_stickyviewmodeCtrl-wspace+ keysCurrent state of things and guidance on how to implement the missing features
Toggle
Helix basic support and structure
Status: General logic is well-developed and
Helixmode is quite usable. It no longer drops intovimmode and no longer relies on hacks forselect modeorword movement.Implementation lives under
vim/helix/and could use a small re-org to avoid PR conflicts and oversized files. I’m happy to overhaul theHelixstructure.Initial implementations of
ranges,objects, andoperatorsare in. This enabled the[/]motions and can be extended to covermmode (needs a bit more work).Helixmovements are more complex thanvim—many imply selection changes in both directions. Complex cases (likeAlt-arrow movements) now work and support multiplecursors.Repeat modifiersare working relatively well. Overall, the foundation is almost there.Movement
Missing pieces
Alt-.(repeat last motion). This differs from “last change,” so there’s no simple reuse. We need to remember thelast motionto repeat it.jump list(Ctrl-I,Ctrl-O,Ctrl-S) needs a proper jump-list implementation.Everything else is implemented or straightforward to add.
Changes
pastewhile preserving selection — currently paste resets/replaces selections. Needs ahelix_pasteimplementation.Alt-u,Alt-U).space yvsy—Helixonly uses theclipboardwhen explicitly requested; may need refinement depending on system clipboard settings.Everything else is implemented or easy to implement.
Shell
Requires some UI changes.
vimuses'<,'>!as the command prefix, but inHelixthat’s not relevant becausemultiple selectionscan be piped directly to a command. Needs a full implementation here.Selection manipulation
s,S— prompt for aregexvia UI, then modify selections (needs proper implementation).Alt-s— currently generic; likely re-implement to better mimicHelix.merge selections— no existing helper; needs to be implemented.primary selection—Helixcan rotate through selections;Zedtreats selections equally. This needs design thought.LSPactions —Helix’s built-inLSPpowers many selection ops;vimmotions don’t. Will require extra work.Overall: selection manipulation needs substantial work.
Search
*andAlt-*should search for the current selection with subsequentnto step through. Should be easy to implement.Goto mode
labels— worth a focused look; there may bevimfunctionality we can reuse.Other motions should be easy to add.
Match mode
objecthandling — partial, needs more testing.cursorsand existing selections.surroundreplace/delete needs particular attention.View mode
Propose a new
helix_stickyviewmode for sticky behavior. Non-sticky likely doable with keybinds innormal/selectmodes.Window mode
Ctrl-Wexists fromvim; may need minor alterations.Space mode
Can be populated via keybinds and adapted to match
Zedpanels better.Beta Was this translation helpful? Give feedback.
All reactions