feat: call pause/resume_undo_history on entering/exiting insert modes
This makes undo atomic for insert mode changes.
This commit is contained in:
parent
6743c99c12
commit
63270246d9
2 changed files with 33 additions and 29 deletions
|
@ -67,9 +67,9 @@
|
||||||
["shift+b", "move_prev_long_word_start"],
|
["shift+b", "move_prev_long_word_start"],
|
||||||
["shift+e", "move_next_long_word_end"],
|
["shift+e", "move_next_long_word_end"],
|
||||||
|
|
||||||
["shift+i", ["smart_move_begin"], ["enter_mode", "insert"]],
|
["shift+i", ["enter_mode", "insert"], ["smart_move_begin"]],
|
||||||
["shift+a", ["move_end"], ["enter_mode", "insert"]],
|
["shift+a", ["enter_mode", "insert"], ["move_end"]],
|
||||||
["shift+o", ["smart_insert_line_before"], ["enter_mode", "insert"]],
|
["shift+o", ["enter_mode", "insert"], ["smart_insert_line_before"]],
|
||||||
|
|
||||||
["shift+c", "copy_selection_on_next_line"],
|
["shift+c", "copy_selection_on_next_line"],
|
||||||
["shift+s", "split_selection"],
|
["shift+s", "split_selection"],
|
||||||
|
@ -143,11 +143,11 @@
|
||||||
["g shift+d", "goto_declaration"],
|
["g shift+d", "goto_declaration"],
|
||||||
|
|
||||||
["i", "enter_mode", "insert"],
|
["i", "enter_mode", "insert"],
|
||||||
["a", ["move_right"], ["enter_mode", "insert"]],
|
["a", ["enter_mode", "insert"], ["move_right"]],
|
||||||
["o", ["smart_insert_line_after"], ["enter_mode", "insert"]],
|
["o", ["enter_mode", "insert"], ["smart_insert_line_after"]],
|
||||||
|
|
||||||
["d", "cut_forward_internal_inclusive"],
|
["d", "cut_forward_internal_inclusive"],
|
||||||
["c", ["cut_forward_internal_inclusive"], ["enter_mode", "insert"]],
|
["c", ["enter_mode", "insert"], ["cut_forward_internal_inclusive"]],
|
||||||
|
|
||||||
["s", "select_regex"],
|
["s", "select_regex"],
|
||||||
[";", "collapse_selections"],
|
[";", "collapse_selections"],
|
||||||
|
@ -240,6 +240,8 @@
|
||||||
"name": "INS",
|
"name": "INS",
|
||||||
"line_numbers": "absolute",
|
"line_numbers": "absolute",
|
||||||
"cursor": "beam",
|
"cursor": "beam",
|
||||||
|
"init_command": ["pause_undo_history"],
|
||||||
|
"deinit_command": ["resume_undo_history"],
|
||||||
"press": [
|
"press": [
|
||||||
["ctrl+u", "move_scroll_page_up"],
|
["ctrl+u", "move_scroll_page_up"],
|
||||||
["ctrl+d", "move_scroll_page_down"],
|
["ctrl+d", "move_scroll_page_down"],
|
||||||
|
@ -276,7 +278,7 @@
|
||||||
["alt+`", "switch_to_uppercase"],
|
["alt+`", "switch_to_uppercase"],
|
||||||
|
|
||||||
["alt+d", "delete_backward"],
|
["alt+d", "delete_backward"],
|
||||||
["alt+c", ["delete_backward"], ["enter_mode", "insert"]],
|
["alt+c", ["enter_mode", "insert"], ["delete_backward"]],
|
||||||
|
|
||||||
["alt+s", "split_selection_on_newline"],
|
["alt+s", "split_selection_on_newline"],
|
||||||
["alt+-", "merge_selections"],
|
["alt+-", "merge_selections"],
|
||||||
|
@ -328,10 +330,10 @@
|
||||||
|
|
||||||
["shift+g", "move_buffer_end_or_count_line"],
|
["shift+g", "move_buffer_end_or_count_line"],
|
||||||
|
|
||||||
["shift+i", ["smart_move_begin"], ["enter_mode", "insert"]],
|
["shift+i", ["enter_mode", "insert"], ["smart_move_begin"]],
|
||||||
["shift+a", ["move_end"], ["enter_mode", "insert"]],
|
["shift+a", ["enter_mode", "insert"], ["move_end"]],
|
||||||
|
|
||||||
["shift+o", ["smart_insert_line_before"], ["enter_mode", "insert"]],
|
["shift+o", ["enter_mode", "insert"], ["smart_insert_line_before"]],
|
||||||
|
|
||||||
["shift+c", "copy_selection_on_next_line"],
|
["shift+c", "copy_selection_on_next_line"],
|
||||||
|
|
||||||
|
@ -415,11 +417,11 @@
|
||||||
["g shift+d", "goto_declaration"],
|
["g shift+d", "goto_declaration"],
|
||||||
|
|
||||||
["i", "enter_mode", "insert"],
|
["i", "enter_mode", "insert"],
|
||||||
["a", ["move_right"], ["enter_mode", "insert"]],
|
["a", ["enter_mode", "insert"], ["move_right"]],
|
||||||
["o", ["smart_insert_line_after"], ["enter_mode", "insert"]],
|
["o", ["enter_mode", "insert"], ["smart_insert_line_after"]],
|
||||||
|
|
||||||
["d", "cut"],
|
["d", "cut"],
|
||||||
["c", ["cut"], ["enter_mode", "insert"]],
|
["c", ["enter_mode", "insert"], ["cut"]],
|
||||||
|
|
||||||
["s", "select_regex"],
|
["s", "select_regex"],
|
||||||
[";", "collapse_selections"],
|
[";", "collapse_selections"],
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
["B", "move_word_left"],
|
["B", "move_word_left"],
|
||||||
["e", "move_word_right_end_vim"],
|
["e", "move_word_right_end_vim"],
|
||||||
["x", "cut_forward_internal"],
|
["x", "cut_forward_internal"],
|
||||||
["s", ["cut_forward_internal"], ["enter_mode", "insert"]],
|
["s", ["enter_mode", "insert"], ["cut_forward_internal"]],
|
||||||
["u", "undo"],
|
["u", "undo"],
|
||||||
|
|
||||||
["j", "move_down_vim"],
|
["j", "move_down_vim"],
|
||||||
|
@ -27,11 +27,11 @@
|
||||||
["<Space>", "move_right_vim"],
|
["<Space>", "move_right_vim"],
|
||||||
|
|
||||||
["i", "enter_mode", "insert"],
|
["i", "enter_mode", "insert"],
|
||||||
["a", ["move_right"], ["enter_mode", "insert"]],
|
["a", ["enter_mode", "insert"], ["move_right"]],
|
||||||
["I", ["smart_move_begin"], ["enter_mode", "insert"]],
|
["I", ["enter_mode", "insert"], ["smart_move_begin"]],
|
||||||
["A", ["move_end"], ["enter_mode", "insert"]],
|
["A", ["enter_mode", "insert"], ["move_end"]],
|
||||||
["o", ["smart_insert_line_after"], ["enter_mode", "insert"]],
|
["o", ["enter_mode", "insert"], ["smart_insert_line_after"]],
|
||||||
["O", ["smart_insert_line_before"], ["enter_mode", "insert"]],
|
["O", ["enter_mode", "insert"], ["smart_insert_line_before"]],
|
||||||
|
|
||||||
["<S-.><S-.>", "indent"],
|
["<S-.><S-.>", "indent"],
|
||||||
["<S-,><S-,>", "unindent"],
|
["<S-,><S-,>", "unindent"],
|
||||||
|
@ -63,11 +63,11 @@
|
||||||
["dd", "cut_internal_vim"],
|
["dd", "cut_internal_vim"],
|
||||||
["\"_dd", "delete_line"],
|
["\"_dd", "delete_line"],
|
||||||
|
|
||||||
["cc", ["cut_internal_vim"], ["enter_mode", "insert"]],
|
["cc", ["enter_mode", "insert"], ["cut_internal_vim"]],
|
||||||
["C", ["cut_to_end_vim"], ["enter_mode", "insert"]],
|
["C", ["enter_mode", "insert"], ["cut_to_end_vim"]],
|
||||||
["D", "cut_to_end_vim"],
|
["D", "cut_to_end_vim"],
|
||||||
["cw", ["cut_word_right_vim"], ["enter_mode", "insert"]],
|
["cw", ["enter_mode", "insert"], ["cut_word_right_vim"]],
|
||||||
["cb", ["cut_word_left_vim"], ["enter_mode", "insert"]],
|
["cb", ["enter_mode", "insert"], ["cut_word_left_vim"]],
|
||||||
|
|
||||||
["yy", ["copy_line_internal_vim"], ["cancel"]],
|
["yy", ["copy_line_internal_vim"], ["cancel"]],
|
||||||
|
|
||||||
|
@ -132,10 +132,10 @@
|
||||||
|
|
||||||
["x", ["cut_forward_internal"], ["enter_mode", "normal"]],
|
["x", ["cut_forward_internal"], ["enter_mode", "normal"]],
|
||||||
["d", ["cut_forward_internal"], ["enter_mode", "normal"]],
|
["d", ["cut_forward_internal"], ["enter_mode", "normal"]],
|
||||||
["s", ["cut_forward_internal"], ["enter_mode", "insert"]],
|
["s", ["enter_mode", "insert"], ["cut_forward_internal"]],
|
||||||
|
|
||||||
["c", ["cut_forward_internal"], ["enter_mode", "insert"]],
|
["c", ["enter_mode", "insert"], ["cut_forward_internal"]],
|
||||||
["C", ["cut_to_end_vim"], ["enter_mode", "insert"]],
|
["C", ["enter_mode", "insert"], ["cut_to_end_vim"]],
|
||||||
["D", "cut_to_end_vim"]
|
["D", "cut_to_end_vim"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -169,10 +169,10 @@
|
||||||
|
|
||||||
["x", ["cut_internal_vim"], ["enter_mode", "normal"]],
|
["x", ["cut_internal_vim"], ["enter_mode", "normal"]],
|
||||||
["d", ["cut_internal_vim"], ["enter_mode", "normal"]],
|
["d", ["cut_internal_vim"], ["enter_mode", "normal"]],
|
||||||
["s", ["cut_internal_vim"], ["enter_mode", "insert"]],
|
["s", ["enter_mode", "insert"], ["cut_internal_vim"]],
|
||||||
|
|
||||||
["c", ["cut_internal_vim"], ["enter_mode", "insert"]],
|
["c", ["enter_mode", "insert"], ["cut_internal_vim"]],
|
||||||
["C", ["cut_to_end_vim"], ["enter_mode", "insert"]],
|
["C", ["enter_mode", "insert"], ["cut_to_end_vim"]],
|
||||||
["D", "cut_to_end_vim"]
|
["D", "cut_to_end_vim"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -181,6 +181,8 @@
|
||||||
"name": "INSERT",
|
"name": "INSERT",
|
||||||
"line_numbers": "absolute",
|
"line_numbers": "absolute",
|
||||||
"cursor": "beam",
|
"cursor": "beam",
|
||||||
|
"init_command": ["pause_undo_history"],
|
||||||
|
"deinit_command": ["resume_undo_history"],
|
||||||
"press": [
|
"press": [
|
||||||
["<Esc>", ["move_left_vim"], ["enter_mode", "normal"]],
|
["<Esc>", ["move_left_vim"], ["enter_mode", "normal"]],
|
||||||
["<Del>", "delete_forward"],
|
["<Del>", "delete_forward"],
|
||||||
|
|
Loading…
Add table
Reference in a new issue