
crazydude123andSmit Barmase
b8cc2b51be
vim: Fix g i and g a in Helix mode to match Helix semantics (#57621)
In Helix mode, `g i` and `g a` currently leak through from the catch-all
`VimControl && !menu` section:
- `g i` fires `vim::InsertAtPrevious` (Vim's "go to last insert"), but
Helix's `goto_implementation` expects an LSP jump to the implementation
site.
- `g a` fires `editor::SelectAllMatches`, but Helix's
`goto_last_accessed_file` expects to jump to the alternate buffer.
This adds explicit overrides in the shared `(vim_mode == helix_normal ||
vim_mode == helix_select)` section so both keys behave per Helix's
documented goto-mode bindings: https://docs.helix-editor.com/keymap.html
### Before
| Key | Helix expects (`goto_*`) | Zed actual (leaked from Vim) |
| --- | --- | --- |
| `g i` | `goto_implementation` (LSP) | `vim::InsertAtPrevious` |
| `g a` | `goto_last_accessed_file` | `editor::SelectAllMatches` |
### After
| Key | Action |
| --- | --- |
| `g i` | `editor::GoToImplementation` |
| `g a` | `pane::AlternateFile` |
Refs #4642
Bounty: https://app.opire.dev/issues/01J6HJZCK02FVD4XG900FY36EE
### Release Notes:
- vim: Fixed `g i` and `g a` in Helix mode to invoke
`goto_implementation` and `goto_last_accessed_file` instead of leaking
Vim-mode bindings.
---------
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-05-26 14:06:15 +00:00
..
2025-07-29 15:09:31 -04:00
2026-01-27 08:50:52 -07:00
2026-05-26 02:10:47 +00:00
2026-04-13 10:54:38 -03:00
2026-05-26 14:06:15 +00:00
2025-12-17 13:02:03 -08:00
2026-05-26 07:09:47 +00:00
2025-09-27 09:20:55 -04:00
2026-05-14 17:33:59 +00:00