add more vim bindings
This commit is contained in:
parent
ba82922ce9
commit
ae91afe255
2 changed files with 94 additions and 8 deletions
|
@ -3,6 +3,12 @@
|
||||||
"syntax": "vim",
|
"syntax": "vim",
|
||||||
"on_match_failure": "ignore",
|
"on_match_failure": "ignore",
|
||||||
"press": [
|
"press": [
|
||||||
|
["b", "move_word_left"],
|
||||||
|
["w", "move_word_right_vim"],
|
||||||
|
["e", "move_word_right"],
|
||||||
|
["x", "delete_forward"],
|
||||||
|
["u", "undo"],
|
||||||
|
|
||||||
["j", "move_down"],
|
["j", "move_down"],
|
||||||
["k", "move_up"],
|
["k", "move_up"],
|
||||||
["l", "move_right_vim"],
|
["l", "move_right_vim"],
|
||||||
|
@ -17,23 +23,78 @@
|
||||||
[";", "open_command_palette"],
|
[";", "open_command_palette"],
|
||||||
["<S-;>", "open_command_palette"],
|
["<S-;>", "open_command_palette"],
|
||||||
["p", "paste"],
|
["p", "paste"],
|
||||||
|
|
||||||
["gd", "goto_definition"],
|
["gd", "goto_definition"],
|
||||||
["gi", "goto_implementation"],
|
["gi", "goto_implementation"],
|
||||||
["gy", "goto_type_definition"],
|
["gy", "goto_type_definition"],
|
||||||
["gg", "move_buffer_begin"],
|
["gg", "move_buffer_begin"],
|
||||||
["g<S-d>", "goto_declaration"],
|
["g<S-d>", "goto_declaration"],
|
||||||
["<S-g>", "move_buffer_end"],
|
["<S-g>", "move_buffer_end"],
|
||||||
|
|
||||||
["d<S-4>", "delete_to_end"],
|
["d<S-4>", "delete_to_end"],
|
||||||
["d4", "delete_to_end"],
|
["d4", "delete_to_end"],
|
||||||
["<C-u>", "cursor_half_page_up"],
|
|
||||||
["<C-d>", "cursor_half_page_down"]
|
["<C-e>", "open_recent"],
|
||||||
|
["<C-u>", "move_scroll_page_up"],
|
||||||
|
["<C-d>", "move_scroll_page_down"],
|
||||||
|
["<C-r>", "redo"],
|
||||||
|
["<C-o>", "jump_back"],
|
||||||
|
["<C-i>", "jump_forward"],
|
||||||
|
["<C-j>", "toggle_panel"],
|
||||||
|
["<C-z>", "undo"],
|
||||||
|
["<C-y>", "redo"],
|
||||||
|
["<C-q>", "quit"],
|
||||||
|
["<C-w>", "close_file"],
|
||||||
|
["<C-s>", "save_file"],
|
||||||
|
["<C-l>", "scroll_view_center_cycle"],
|
||||||
|
["<C-n>", "goto_next_match"],
|
||||||
|
["<C-p>", "goto_prev_match"],
|
||||||
|
["<C-b>", "move_to_char", false],
|
||||||
|
["<C-t>", "move_to_char", true],
|
||||||
|
["<C-x>", "cut"],
|
||||||
|
["<C-c>", "copy"],
|
||||||
|
["<C-v>", "system_paste"],
|
||||||
|
["<C-k>", "TODO"],
|
||||||
|
["<C-f>", "find"],
|
||||||
|
["<C-g>", "goto"],
|
||||||
|
["<C-a>", "select_all"],
|
||||||
|
["<C-/>", "toggle_comment"],
|
||||||
|
["<C-CR>", "smart_insert_line_after"],
|
||||||
|
["<C-Space","selections_reverse"],
|
||||||
|
["<C-End>","move_buffer_end"],
|
||||||
|
["<C-Home>", "move_buffer_begin"],
|
||||||
|
["<C-Up>", "move_scroll_up"],
|
||||||
|
["<C-Down>", "move_scroll_down"],
|
||||||
|
["<C-Left>", "move_word_left"],
|
||||||
|
["<C-Right>", "move_word_right"],
|
||||||
|
["<C-BS>", "delete_word_left"],
|
||||||
|
["<C-Del>", "delete_word_right"],
|
||||||
|
["<C-F5>", "toggle_inspector_view"],
|
||||||
|
["<C-F10>", "toggle_whitespace_mode"],
|
||||||
|
|
||||||
|
["<F2>", "toggle_input_mode"],
|
||||||
|
["<F3>", "goto_next_match"],
|
||||||
|
["<F15>", "goto_prev_match"],
|
||||||
|
["<F5>", "toggle_inspector_view"],
|
||||||
|
["<F6>", "dump_current_line_tree"],
|
||||||
|
["<F7>", "dump_current_line"],
|
||||||
|
["<F9>", "theme_prev"],
|
||||||
|
["<F10>", "theme_next"],
|
||||||
|
["<F11>", "toggle_panel"],
|
||||||
|
["<F12>", "goto_definition"],
|
||||||
|
["<F34>", "toggle_whitespace_mode"],
|
||||||
|
["<CR>", "smart_insert_line"],
|
||||||
|
["<Del>", "delete_forward"],
|
||||||
|
["<BS>", "delete_backward"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"insert": {
|
"insert": {
|
||||||
"syntax": "vim",
|
"syntax": "vim",
|
||||||
"press": [
|
"press": [
|
||||||
["jk", "enter_mode", "vim/normal"],
|
["jk", "enter_mode", "vim/normal"],
|
||||||
["<Esc>", "enter_mode", "vim/normal"]
|
["<Esc>", "enter_mode", "vim/normal"],
|
||||||
|
["<Del>", "delete_forward"],
|
||||||
|
["<BS>", "delete_backward"]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ pub const ParseError = error{
|
||||||
InvalidStartOfControlBinding,
|
InvalidStartOfControlBinding,
|
||||||
InvalidStartOfShiftBinding,
|
InvalidStartOfShiftBinding,
|
||||||
InvalidStartOfDelBinding,
|
InvalidStartOfDelBinding,
|
||||||
|
InvalidStartOfEscBinding,
|
||||||
InvalidStartOfHomeBinding,
|
InvalidStartOfHomeBinding,
|
||||||
InvalidCRBinding,
|
InvalidCRBinding,
|
||||||
InvalidSpaceBinding,
|
InvalidSpaceBinding,
|
||||||
|
@ -117,7 +118,11 @@ pub fn parse_key_events(allocator: std.mem.Allocator, event: input.Event, str: [
|
||||||
'-' => {
|
'-' => {
|
||||||
state = .modifier;
|
state = .modifier;
|
||||||
},
|
},
|
||||||
else => return parse_error(error.InvalidStartOfControlBinding, "str: {s}, i: {} c: {c}", .{ str, i, str[i] }),
|
else => return parse_error(
|
||||||
|
error.InvalidStartOfControlBinding,
|
||||||
|
"str: {s}, i: {} c: {c}",
|
||||||
|
.{ str, i, str[i] },
|
||||||
|
),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'S' => {
|
'S' => {
|
||||||
|
@ -128,7 +133,11 @@ pub fn parse_key_events(allocator: std.mem.Allocator, event: input.Event, str: [
|
||||||
'p' => {
|
'p' => {
|
||||||
state = .space;
|
state = .space;
|
||||||
},
|
},
|
||||||
else => return parse_error(error.InvalidStartOfShiftBinding, "str: {s}, i: {} c: {c}", .{ str, i, str[i] }),
|
else => return parse_error(
|
||||||
|
error.InvalidStartOfShiftBinding,
|
||||||
|
"str: {s}, i: {} c: {c}",
|
||||||
|
.{ str, i, str[i] },
|
||||||
|
),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'F' => {
|
'F' => {
|
||||||
|
@ -154,7 +163,15 @@ pub fn parse_key_events(allocator: std.mem.Allocator, event: input.Event, str: [
|
||||||
state = .bs;
|
state = .bs;
|
||||||
},
|
},
|
||||||
'E' => {
|
'E' => {
|
||||||
state = .esc;
|
state = switch (try peek(str, i)) {
|
||||||
|
's' => .esc,
|
||||||
|
'n' => .end,
|
||||||
|
else => return parse_error(
|
||||||
|
error.InvalidStartOfEscBinding,
|
||||||
|
"str: {s}, i: {} c: {c}",
|
||||||
|
.{ str, i, str[i] },
|
||||||
|
),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
'D' => {
|
'D' => {
|
||||||
switch (try peek(str, i)) {
|
switch (try peek(str, i)) {
|
||||||
|
@ -167,13 +184,21 @@ pub fn parse_key_events(allocator: std.mem.Allocator, event: input.Event, str: [
|
||||||
'e' => {
|
'e' => {
|
||||||
state = .del;
|
state = .del;
|
||||||
},
|
},
|
||||||
else => return parse_error(error.InvalidStartOfDelBinding, "str: {s}, i: {} c: {c}", .{ str, i, str[i] }),
|
else => return parse_error(
|
||||||
|
error.InvalidStartOfDelBinding,
|
||||||
|
"str: {s}, i: {} c: {c}",
|
||||||
|
.{ str, i, str[i] },
|
||||||
|
),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'H' => {
|
'H' => {
|
||||||
state = .home;
|
state = .home;
|
||||||
},
|
},
|
||||||
else => return parse_error(error.InvalidStartOfHomeBinding, "str: {s}, i: {} c: {c}", .{ str, i, str[i] }),
|
else => return parse_error(
|
||||||
|
error.InvalidStartOfHomeBinding,
|
||||||
|
"str: {s}, i: {} c: {c}",
|
||||||
|
.{ str, i, str[i] },
|
||||||
|
),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.insert => {
|
.insert => {
|
||||||
|
|
Loading…
Add table
Reference in a new issue