Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-term/src/keymap/default.rs')
| -rw-r--r-- | helix-term/src/keymap/default.rs | 83 |
1 files changed, 24 insertions, 59 deletions
diff --git a/helix-term/src/keymap/default.rs b/helix-term/src/keymap/default.rs index 5bbbd3f4..ebcd125a 100644 --- a/helix-term/src/keymap/default.rs +++ b/helix-term/src/keymap/default.rs @@ -1,14 +1,14 @@ use std::collections::HashMap; use super::macros::keymap; -use super::{KeyTrie, Mode}; +use super::{Keymap, Mode}; use helix_core::hashmap; -pub fn default() -> HashMap<Mode, KeyTrie> { +pub fn default() -> HashMap<Mode, Keymap> { let normal = keymap!({ "Normal mode" "h" | "left" => move_char_left, - "j" | "down" => move_visual_line_down, - "k" | "up" => move_visual_line_up, + "j" | "down" => move_line_down, + "k" | "up" => move_line_up, "l" | "right" => move_char_right, "t" => find_till_char, @@ -38,14 +38,12 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "G" => goto_line, "g" => { "Goto" "g" => goto_file_start, - "|" => goto_column, "e" => goto_last_line, "f" => goto_file, "h" => goto_line_start, "l" => goto_line_end, "s" => goto_first_nonwhitespace, "d" => goto_definition, - "D" => goto_declaration, "y" => goto_type_definition, "r" => goto_reference, "i" => goto_implementation, @@ -56,10 +54,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "m" => goto_last_modified_file, "n" => goto_next_buffer, "p" => goto_previous_buffer, - "k" => move_line_up, - "j" => move_line_down, "." => goto_last_modification, - "w" => goto_word, }, ":" => command_mode, @@ -81,19 +76,13 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "s" => select_regex, "A-s" => split_selection_on_newline, - "A-minus" => merge_selections, - "A-_" => merge_consecutive_selections, "S" => split_selection, ";" => collapse_selection, "A-;" => flip_selections, "A-o" | "A-up" => expand_selection, "A-i" | "A-down" => shrink_selection, - "A-I" | "A-S-down" => select_all_children, "A-p" | "A-left" => select_prev_sibling, "A-n" | "A-right" => select_next_sibling, - "A-e" => move_parent_node_end, - "A-b" => move_parent_node_start, - "A-a" => select_all_siblings, "%" => select_all, "x" => extend_line_below, @@ -117,10 +106,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "t" => goto_prev_class, "a" => goto_prev_parameter, "c" => goto_prev_comment, - "e" => goto_prev_entry, "T" => goto_prev_test, "p" => goto_prev_paragraph, - "x" => goto_prev_xml_element, "space" => add_newline_above, }, "]" => { "Right bracket" @@ -132,10 +119,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "t" => goto_next_class, "a" => goto_next_parameter, "c" => goto_next_comment, - "e" => goto_next_entry, "T" => goto_next_test, "p" => goto_next_paragraph, - "x" => goto_next_xml_element, "space" => add_newline_below, }, @@ -143,8 +128,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "?" => rsearch, "n" => search_next, "N" => search_prev, - "*" => search_selection_detect_word_boundaries, - "A-*" => search_selection, + "*" => search_selection, "u" => undo, "U" => redo, @@ -187,8 +171,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "esc" => normal_mode, "C-b" | "pageup" => page_up, "C-f" | "pagedown" => page_down, - "C-u" => page_cursor_half_up, - "C-d" => page_cursor_half_down, + "C-u" => half_page_up, + "C-d" => half_page_down, "C-w" => { "Window" "C-w" | "w" => rotate_view, @@ -225,20 +209,16 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "space" => { "Space" "f" => file_picker, "F" => file_picker_in_current_directory, - "e" => file_explorer, - "E" => file_explorer_in_current_buffer_directory, "b" => buffer_picker, "j" => jumplist_picker, - "s" => lsp_or_syntax_symbol_picker, - "S" => lsp_or_syntax_workspace_symbol_picker, + "s" => symbol_picker, + "S" => workspace_symbol_picker, "d" => diagnostics_picker, "D" => workspace_diagnostics_picker, - "g" => changed_file_picker, "a" => code_action, "'" => last_picker, - "G" => { "Debug (experimental)" sticky=true + "g" => { "Debug (experimental)" sticky=true "l" => dap_launch, - "r" => dap_restart, "b" => dap_toggle_breakpoint, "c" => dap_continue, "h" => dap_pause, @@ -279,7 +259,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "C-v" | "v" => vsplit_new, }, }, - "y" => yank_to_clipboard, + "y" => yank_joined_to_clipboard, "Y" => yank_main_selection_to_clipboard, "p" => paste_clipboard_after, "P" => paste_clipboard_before, @@ -288,9 +268,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "k" => hover, "r" => rename_symbol, "h" => select_references_to_symbol_under_cursor, - "c" => toggle_comments, - "C" => toggle_block_comments, - "A-c" => toggle_line_comments, "?" => command_palette, }, "z" => { "View" @@ -302,8 +279,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "j" | "down" => scroll_down, "C-b" | "pageup" => page_up, "C-f" | "pagedown" => page_down, - "C-u" | "backspace" => page_cursor_half_up, - "C-d" | "space" => page_cursor_half_down, + "C-u" | "backspace" => half_page_up, + "C-d" | "space" => half_page_down, "/" => search, "?" => rsearch, @@ -319,8 +296,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "j" | "down" => scroll_down, "C-b" | "pageup" => page_up, "C-f" | "pagedown" => page_down, - "C-u" | "backspace" => page_cursor_half_up, - "C-d" | "space" => page_cursor_half_down, + "C-u" | "backspace" => half_page_up, + "C-d" | "space" => half_page_down, "/" => search, "?" => rsearch, @@ -342,8 +319,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { let mut select = normal.clone(); select.merge_nodes(keymap!({ "Select mode" "h" | "left" => extend_char_left, - "j" | "down" => extend_visual_line_down, - "k" | "up" => extend_visual_line_up, + "j" | "down" => extend_line_down, + "k" | "up" => extend_line_up, "l" | "right" => extend_char_right, "w" => extend_next_word_start, @@ -353,9 +330,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "B" => extend_prev_long_word_start, "E" => extend_next_long_word_end, - "A-e" => extend_parent_node_end, - "A-b" => extend_parent_node_start, - "n" => extend_search_next, "N" => extend_search_prev, @@ -369,14 +343,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "esc" => exit_select_mode, "v" => normal_mode, - "g" => { "Goto" - "g" => extend_to_file_start, - "|" => extend_to_column, - "e" => extend_to_last_line, - "k" => extend_line_up, - "j" => extend_line_down, - "w" => extend_to_word, - }, })); let insert = keymap!({ "Insert mode" "esc" => normal_mode, @@ -389,14 +355,13 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "A-d" | "A-del" => delete_word_forward, "C-u" => kill_to_line_start, "C-k" => kill_to_line_end, - "C-h" | "backspace" | "S-backspace" => delete_char_backward, + "C-h" | "backspace" => delete_char_backward, "C-d" | "del" => delete_char_forward, "C-j" | "ret" => insert_newline, - "tab" => smart_tab, - "S-tab" => insert_tab, + "tab" => insert_tab, - "up" => move_visual_line_up, - "down" => move_visual_line_down, + "up" => move_line_up, + "down" => move_line_down, "left" => move_char_left, "right" => move_char_right, "pageup" => page_up, @@ -405,8 +370,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> { "end" => goto_line_end_newline, }); hashmap!( - Mode::Normal => normal, - Mode::Select => select, - Mode::Insert => insert, + Mode::Normal => Keymap::new(normal), + Mode::Select => Keymap::new(select), + Mode::Insert => Keymap::new(insert), ) } |