From 11ddecb995c5f2368ca6fb07e440afa7d80a45d9 Mon Sep 17 00:00:00 2001 From: fantacell Date: Tue, 8 Jul 2025 19:47:39 +0200 Subject: [PATCH] helix: Change keymap (#33925) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Might close #33838 for now Keymaps that work both in vim and helix, but only in normal mode, not the more general `VimControl` context are written separately. This makes the file shorter by combining them and also adds one more keymap. Release Notes: - N/A --- assets/keymaps/vim.json | 56 +++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index ba3012cc54..d90813e3d6 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -218,35 +218,18 @@ "context": "vim_mode == normal", "bindings": { "ctrl-[": "editor::Cancel", - "escape": "editor::Cancel", ":": "command_palette::Toggle", "c": "vim::PushChange", "shift-c": "vim::ChangeToEndOfLine", "d": "vim::PushDelete", "delete": "vim::DeleteRight", - "shift-d": "vim::DeleteToEndOfLine", - "shift-j": "vim::JoinLines", "g shift-j": "vim::JoinLinesNoWhitespace", "y": "vim::PushYank", - "shift-y": "vim::YankLine", - "i": "vim::InsertBefore", - "shift-i": "vim::InsertFirstNonWhitespace", - "a": "vim::InsertAfter", - "shift-a": "vim::InsertEndOfLine", "x": "vim::DeleteRight", "shift-x": "vim::DeleteLeft", - "o": "vim::InsertLineBelow", - "shift-o": "vim::InsertLineAbove", - "~": "vim::ChangeCase", "ctrl-a": "vim::Increment", "ctrl-x": "vim::Decrement", - "p": "vim::Paste", - "shift-p": ["vim::Paste", { "before": true }], - "u": "vim::Undo", "ctrl-r": "vim::Redo", - "r": "vim::PushReplace", - "s": "vim::Substitute", - "shift-s": "vim::SubstituteLine", ">": "vim::PushIndent", "<": "vim::PushOutdent", "=": "vim::PushAutoIndent", @@ -256,11 +239,8 @@ "g ~": "vim::PushOppositeCase", "g ?": "vim::PushRot13", // "g ?": "vim::PushRot47", - "\"": "vim::PushRegister", "g w": "vim::PushRewrap", "g q": "vim::PushRewrap", - "ctrl-pagedown": "pane::ActivateNextItem", - "ctrl-pageup": "pane::ActivatePreviousItem", "insert": "vim::InsertBefore", // tree-sitter related commands "[ x": "vim::SelectLargerSyntaxNode", @@ -364,18 +344,11 @@ } }, { - "context": "vim_mode == helix_normal && !menu", + "context": "(vim_mode == normal || vim_mode == helix_normal) && !menu", "bindings": { "escape": "editor::Cancel", - "ctrl-[": "editor::Cancel", - ":": "command_palette::Toggle", - "left": "vim::WrappingLeft", - "right": "vim::WrappingRight", - "h": "vim::WrappingLeft", - "l": "vim::WrappingRight", "shift-d": "vim::DeleteToEndOfLine", "shift-j": "vim::JoinLines", - "y": "editor::Copy", "shift-y": "vim::YankLine", "i": "vim::InsertBefore", "shift-i": "vim::InsertFirstNonWhitespace", @@ -389,27 +362,39 @@ "p": "vim::Paste", "shift-p": ["vim::Paste", { "before": true }], "u": "vim::Undo", + "r": "vim::PushReplace", + "s": "vim::Substitute", + "shift-s": "vim::SubstituteLine", + "\"": "vim::PushRegister", + "ctrl-pagedown": "pane::ActivateNextItem", + "ctrl-pageup": "pane::ActivatePreviousItem" + } + }, + { + "context": "vim_mode == helix_normal && !menu", + "bindings": { + "ctrl-[": "editor::Cancel", + ":": "command_palette::Toggle", + "left": "vim::WrappingLeft", + "right": "vim::WrappingRight", + "h": "vim::WrappingLeft", + "l": "vim::WrappingRight", + "y": "editor::Copy", + "alt-;": "vim::OtherEnd", "ctrl-r": "vim::Redo", "f": ["vim::PushFindForward", { "before": false, "multiline": true }], "t": ["vim::PushFindForward", { "before": true, "multiline": true }], "shift-f": ["vim::PushFindBackward", { "after": false, "multiline": true }], "shift-t": ["vim::PushFindBackward", { "after": true, "multiline": true }], - "r": "vim::PushReplace", - "s": "vim::Substitute", - "shift-s": "vim::SubstituteLine", ">": "vim::Indent", "<": "vim::Outdent", "=": "vim::AutoIndent", "g u": "vim::PushLowercase", "g shift-u": "vim::PushUppercase", "g ~": "vim::PushOppositeCase", - "\"": "vim::PushRegister", "g q": "vim::PushRewrap", "g w": "vim::PushRewrap", - "ctrl-pagedown": "pane::ActivateNextItem", - "ctrl-pageup": "pane::ActivatePreviousItem", "insert": "vim::InsertBefore", - ".": "vim::Repeat", "alt-.": "vim::RepeatFind", // tree-sitter related commands "[ x": "editor::SelectLargerSyntaxNode", @@ -429,7 +414,6 @@ "g h": "vim::StartOfLine", "g s": "vim::FirstNonWhitespace", // "g s" default behavior is "space s" "g e": "vim::EndOfDocument", - "g y": "editor::GoToTypeDefinition", "g r": "editor::FindAllReferences", // zed specific "g t": "vim::WindowTop", "g c": "vim::WindowMiddle",