flow/src/keybind/builtin/vim.json
2025-02-12 19:06:54 +01:00

126 lines
4 KiB
JSON

{
"settings": {
"init_command": ["enter_vim_mode"],
"deinit_command": ["exit_vim_mode"]
},
"normal": {
"syntax": "vim",
"on_match_failure": "ignore",
"name": "NORMAL",
"line_numbers": "relative",
"cursor": "block",
"selection": "normal",
"press": [
["b", "move_word_left_vim"],
["w", "move_word_right_vim"],
["W", "move_word_right"],
["B", "move_word_left"],
["e", "move_word_right_end_vim"],
["x", "cut_forward_internal"],
["s", ["cut_forward_internal"], ["enter_mode", "insert"]],
["u", "undo"],
["j", "move_down"],
["k", "move_up"],
["l", "move_right_vim"],
["h", "move_left_vim"],
["<Space>", "move_right_vim"],
["i", "enter_mode", "insert"],
["a", ["move_right"], ["enter_mode", "insert"]],
["I", ["smart_move_begin"], ["enter_mode", "insert"]],
["A", ["move_end"], ["enter_mode", "insert"]],
["o", ["smart_insert_line_after"], ["enter_mode", "insert"]],
["O", ["smart_insert_line_before"], ["enter_mode", "insert"]],
["v", "enter_mode", "visual"],
["V", ["move_begin"], ["enter_mode", "visual"], ["select_end"]],
["n", "goto_next_match"],
["0", "move_begin"],
["^", "smart_move_begin"],
["$", "move_end"],
[":", "open_command_palette"],
["p", "paste_internal_vim"],
["gd", "goto_definition"],
["gi", "goto_implementation"],
["gy", "goto_type_definition"],
["gg", "move_buffer_begin"],
["grn", "rename_symbol"],
["gD", "goto_declaration"],
["G", "move_buffer_end"],
["d$", "delete_to_end"],
["dw", "cut_word_right_vim"],
["db", "cut_word_left_vim"],
["dd", "cut_internal_vim"],
["\"_dd", "delete_line"],
["yy", ["copy_line_internal_vim"], ["cancel"]],
["<C-u>", "move_scroll_page_up"],
["<C-d>", "move_scroll_page_down"],
["u", "undo"],
["<C-r>", "redo"],
["<C-o>", "jump_back"],
["<C-i>", "jump_forward"],
["<C-y>", "redo"],
["/", "find"],
["<C-k>", "TODO"],
["<C-CR>", ["move_down"], ["move_begin"]],
["<CR>", ["move_down"], ["move_begin"]]
]
},
"visual": {
"syntax": "vim",
"on_match_failure": "ignore",
"name": "VISUAL",
"line_numbers": "relative",
"cursor": "block",
"selection": "normal",
"press": [
["<Esc>", "enter_mode", "normal"],
["k", "select_up"],
["j", "select_down"],
["h", "select_left"],
["l", "select_right"],
["y", ["copy_internal_vim"], ["cancel"], ["enter_mode", "normal"]],
["x", ["cut_forward_internal"], ["cancel"], ["enter_mode", "normal"]],
["d", ["cut_forward_internal"], ["cancel"], ["enter_mode", "normal"]],
["s", ["cut_forward_internal"], ["cancel"], ["enter_mode", "insert"]]
]
},
"insert": {
"syntax": "vim",
"name": "INSERT",
"line_numbers": "absolute",
"cursor": "beam",
"press": [
["<Esc>", "enter_mode", "normal"],
["<Del>", "delete_forward"],
["<BS>", "delete_backward"],
["<CR>", "smart_insert_line"],
["<C-BS>", "delete_word_left"],
["<C-Del", "delete_word_right"]
]
},
"home": {
"syntax": "vim",
"on_match_failure": "ignore",
"press": [
[":", "open_command_palette"],
["b", "open_keybind_config"],
["j", "home_menu_down"],
["k", "home_menu_up"],
["f", "change_fontface"],
["<Space>", "home_menu_activate"]
]
}
}