diff --git a/book/src/keymap.md b/book/src/keymap.md index 5928a1ae6..aed48d5b2 100644 --- a/book/src/keymap.md +++ b/book/src/keymap.md @@ -86,6 +86,7 @@ ### Selection manipulation | `Alt-s` | Split selection on newlines | `split_selection_on_newline` | | `;` | Collapse selection onto a single cursor | `collapse_selection` | | `Alt-;` | Flip selection cursor and anchor | `flip_selections` | +| `,` | Keep only the primary selection | `keep_primary_selection` | | `C` | Copy selection onto the next line | `copy_selection_on_next_line` | | `Alt-C` | Copy selection onto the previous line | `copy_selection_on_prev_line` | | `(` | Rotate main selection forward | `rotate_selections_backward` | @@ -99,7 +100,6 @@ ### Selection manipulation | `J` | Join lines inside selection | `join_selections` | | `K` | Keep selections matching the regex TODO: overlapped by hover help | `keep_selections` | | `$` | Pipe each selection into shell command, keep selections where command returned 0 | `shell_keep_pipe` | -| `Space` | Keep only the primary selection TODO: overlapped by space mode | `keep_primary_selection` | | `Ctrl-c` | Comment/uncomment the selections | `toggle_comments` | ### Search @@ -200,7 +200,6 @@ #### Space mode | `a` | Apply code action | `code_action` | | `'` | Open last fuzzy picker | `last_picker` | | `w` | Enter [window mode](#window-mode) | N/A | -| `space` | Keep primary selection TODO: it's here because space mode replaced it | `keep_primary_selection` | | `p` | Paste system clipboard after selections | `paste_clipboard_after` | | `P` | Paste system clipboard before selections | `paste_clipboard_before` | | `y` | Join and yank selections to clipboard | `yank_joined_to_clipboard` | diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 117ba0460..e3c351f60 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -2825,6 +2825,10 @@ fn open_above(cx: &mut Context) { fn normal_mode(cx: &mut Context) { let (view, doc) = current!(cx.editor); + if doc.mode == Mode::Normal { + return; + } + doc.mode = Mode::Normal; doc.append_changes_to_history(view.id); diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs index f9bfcc508..a83b960ee 100644 --- a/helix-term/src/keymap.rs +++ b/helix-term/src/keymap.rs @@ -436,7 +436,6 @@ fn default() -> Keymaps { "A" => append_to_line, "o" => open_below, "O" => open_above, - // [ ] equivalents too (add blank new line, no edit) "d" => delete_selection, // TODO: also delete without yanking @@ -500,8 +499,7 @@ fn default() -> Keymaps { "K" => keep_selections, // TODO: and another method for inverse - // TODO: clashes with space mode - "space" => keep_primary_selection, + "," => keep_primary_selection, // "q" => record_macro, // "Q" => replay_macro, @@ -554,7 +552,6 @@ fn default() -> Keymaps { "p" => paste_clipboard_after, "P" => paste_clipboard_before, "R" => replace_selections_with_clipboard, - "space" => keep_primary_selection, "/" => global_search, }, "z" => { "View"