######################### # MODES # https://learnbyexample.github.io/vim_reference/Normal-mode.html # https://www.fprintf.net/vimCheatSheet.html # commands starting with `_` accept optional `count` prefix-argument # commands ending with `_` require string postfix-argument ######################### mode_normal: mode_visual: v insert: i insert_at_beginning_of_line_non_blank: I insert_at_prior_location: gi insert_below: o insert_above: O append: a append_at_end_of_line: A replace_: r ######################### # BASICS ######################### undo: u redo: U r _put_after: p _put_before: P _search_forward: / _search_backward: ? _search_next_match: n _search_previous_match: N repeat_edit: . ######################### # SCROLLING ######################### scroll_to_middle: zz z. scroll_to_top: zt scroll_to_bottom: zb scroll_up_one_line: zu y scroll_down_one_line: zd e scroll_up_half_page: u scroll_down_half_page: d scroll_up_one_page: b scroll_down_one_page: f ######################### # UP-DOWN MOTION # http://vimdoc.sourceforge.net/htmldoc/motion.html ######################### _move_up: k _move_down: j _move_up_non_blank: - _move_down_non_blank: + move_to_top_of_window_non_blank: H move_to_middle_of_window_non_blank: M move_to_bottom_of_window_non_blank: L ######################### # LEFT-RIGHT MOTION ######################### _move_left: h _move_right: l move_to_beginning_of_line: 0 move_to_beginning_of_line_non_blank: ^ _move_to_end_of_line: $ _move_to_end_of_line_non_blank: g_ _move_to_column: | move_to_middle_of_line: gM move_to_matching_brace: % _move_to_beginning_of_line_non_blank_default_beginning_of_document: gg _move_to_beginning_of_line_non_blank_default_end_of_document: G _move_forward_to_beginning_of_subword: s _move_forward_to_beginning_of_word: w _move_forward_to_beginning_of_word_blank: W _move_backward_to_beginning_of_subword: S _move_backward_to_beginning_of_word: b _move_backward_to_beginning_of_word_blank: B _move_forward_to_end_of_subword: gs _move_forward_to_end_of_word: e _move_forward_to_end_of_word_blank: E _move_backward_to_end_of_subword: gS _move_backward_to_end_of_word: ge _move_backward_to_end_of_word_blank: gE _move_forward_to_beginning_of_sentence: ) _move_backward_to_beginning_of_sentence: ( _move_forward_to_beginning_of_paragraph: } _move_backward_to_beginning_of_paragraph: { _move_forward_to_beginning_of_scope: ] _move_backward_to_beginning_of_scope: [ ######################### # SCAN MOTION ######################### _move_forward_to_: f _move_backward_to_: F _move_forward_until_: t _move_backward_until_: T repeat_move: ; repeat_move_reverse: , ######################### # TEXT OBJECT SELECTION ######################### object_character: l object_subword: s object_word: w object_word_non_blank: W object_sentence: n object_paragraph: p object_round: ( ) object_square: [ ] object_angle: \< \> object_curly: { } B object_double_quote: " object_single_quote: ' object_tick: ` object_tag: t object_document: d object_selection: e scope_inside: i scope_around: a ######################### # OPERATORS # http://vimdoc.sourceforge.net/htmldoc/motion.html#operator ######################### _op_change: c _op_delete: d _op_yank: y _op_lower_case: gu _op_upper_case: gU _op_title_case: gt _op_change_case: g~ _op_increase_indent: > _op_decrease_indent: < _op_auto_indent: = _op_toggle_comment: \# ######################### # OPERATOR SHORTCUTS ######################### _yank_line: yy _delete_line: dd _change_line: cc _increase_indent_line: >> _decrease_indent_line: << _auto_indent_line: == _toggle_comment_line: \## _delete_right: x _delete_left: X _change_right: q # normally `s`. but I like that for `subword` stuff change_case_character: ~ delete_to_end_of_line: D change_to_end_of_line: C