pub struct Builtins {Show 83 fields
pub word_forward: MotionId,
pub word_backward: MotionId,
pub word_end: MotionId,
pub first_non_blank: MotionId,
pub find_char_forward: MotionId,
pub find_char_backward: MotionId,
pub till_char_forward: MotionId,
pub till_char_backward: MotionId,
pub big_word_forward: MotionId,
pub big_word_backward: MotionId,
pub big_word_end: MotionId,
pub paragraph_forward: MotionId,
pub paragraph_backward: MotionId,
pub sentence_forward: MotionId,
pub sentence_backward: MotionId,
pub char_left: MotionId,
pub char_right: MotionId,
pub line_up: MotionId,
pub line_down: MotionId,
pub line_start: MotionId,
pub line_end: MotionId,
pub goto_first_line: MotionId,
pub goto_last_line: MotionId,
pub find_repeat: MotionId,
pub find_repeat_reverse: MotionId,
pub match_pair: MotionId,
pub goto_next_fold: MotionId,
pub goto_prev_fold: MotionId,
pub search_next: MotionId,
pub search_prev: MotionId,
pub search_word_forward: MotionId,
pub search_word_backward: MotionId,
pub search_word_forward_partial: MotionId,
pub search_word_backward_partial: MotionId,
pub mark_line: MotionId,
pub display_line_down: MotionId,
pub display_line_up: MotionId,
pub display_line_start: MotionId,
pub display_line_end: MotionId,
pub mark_exact: MotionId,
pub viewport_top: MotionId,
pub viewport_middle: MotionId,
pub viewport_bottom: MotionId,
pub delete: OperatorId,
pub change: OperatorId,
pub yank: OperatorId,
pub indent_left: OperatorId,
pub indent_right: OperatorId,
pub reindent: OperatorId,
pub reflow: OperatorId,
pub reformat: OperatorId,
pub create_fold: OperatorId,
pub upper: OperatorId,
pub lower: OperatorId,
pub toggle_case: OperatorId,
pub search: OperatorId,
pub replace_char: OperatorId,
pub inner_paragraph: TextObjectId,
pub around_paragraph: TextObjectId,
pub inner_sentence: TextObjectId,
pub around_sentence: TextObjectId,
pub inner_word: TextObjectId,
pub around_word: TextObjectId,
pub inner_quote_double: TextObjectId,
pub around_quote_double: TextObjectId,
pub inner_quote_single: TextObjectId,
pub around_quote_single: TextObjectId,
pub inner_quote_backtick: TextObjectId,
pub around_quote_backtick: TextObjectId,
pub inner_paren: TextObjectId,
pub around_paren: TextObjectId,
pub inner_bracket: TextObjectId,
pub around_bracket: TextObjectId,
pub inner_brace: TextObjectId,
pub around_brace: TextObjectId,
pub inner_tag: TextObjectId,
pub around_tag: TextObjectId,
pub inner_big_word: TextObjectId,
pub around_big_word: TextObjectId,
pub inner_angle: TextObjectId,
pub around_angle: TextObjectId,
pub inner_comment: TextObjectId,
pub around_comment: TextObjectId,
}Expand description
The ids of every native built-in, as returned by populate.
A typed shortcut for callers that hold the populated registry and need a
specific builtin without a name lookup (the keystroke parser, the
host’s keymap wiring, tests, benches). Every field is also reachable by
its registered name through CommandRegistry::id_by_name; the doc on
each field gives that name and the vim key it implements. Default
yields placeholder ids that name nothing, for code that needs a value
before the registry is populated.
Fields§
§word_forward: MotionIdmotion:word-forward — vim’s w: start of the next word (3-way word/punct/blank classes). Exclusive; tagged word-forward so dw / cw stop at the line end.
word_backward: MotionIdmotion:word-backward — vim’s b: start of the previous word.
word_end: MotionIdmotion:word-end — vim’s e: last byte of the current or next word. Inclusive.
first_non_blank: MotionIdmotion:first-non-blank — vim’s ^: first non-blank byte of the line. Exclusive.
find_char_forward: MotionIdmotion:find-char-forward — vim’s f{char}: next args.char on the line, landing on it. Inclusive.
find_char_backward: MotionIdmotion:find-char-backward — vim’s F{char}: previous args.char on the line, landing on it.
till_char_forward: MotionIdmotion:till-char-forward — vim’s t{char}: one byte before the next args.char on the line.
till_char_backward: MotionIdmotion:till-char-backward — vim’s T{char}: one byte after the previous args.char on the line.
big_word_forward: MotionIdmotion:big-word-forward — vim’s W: start of the next whitespace-delimited WORD. Tagged word-forward, like w.
big_word_backward: MotionIdmotion:big-word-backward — vim’s B: start of the previous WORD.
big_word_end: MotionIdmotion:big-word-end — vim’s E: last byte of the current or next WORD.
paragraph_forward: MotionIdmotion:paragraph-forward — vim’s }: the next blank line (paragraph boundary). A jump.
paragraph_backward: MotionIdmotion:paragraph-backward — vim’s {: the previous paragraph boundary. A jump.
sentence_forward: MotionIdmotion:sentence-forward — vim’s ): start of the next sentence. A jump.
sentence_backward: MotionIdmotion:sentence-backward — vim’s (: start of the previous sentence. A jump.
char_left: MotionIdmotion:char-left — vim’s h: one character left, within the line (steps whole UTF-8 scalars).
char_right: MotionIdmotion:char-right — vim’s l: one character right, within the line.
line_up: MotionIdmotion:line-up — vim’s k: one line up, aiming at the goal column (keeps curswant).
line_down: MotionIdmotion:line-down — vim’s j: one line down, aiming at the goal column (keeps curswant).
line_start: MotionIdmotion:line-start — vim’s 0: first byte of the line. Exclusive.
line_end: MotionIdmotion:line-end — vim’s $: end of the line; pins the goal column to end-of-line.
goto_first_line: MotionIdmotion:goto-first-line — vim’s gg ({count}gg goes to that line). Linewise jump.
goto_last_line: MotionIdmotion:goto-last-line — vim’s G ({count}G goes to that line). Linewise jump.
find_repeat: MotionIdVM.3c: vim’s ; and , — repeat the last f / F / t / T in
the same or the opposite direction. Motions for the same reason % is:
vim composes them (d;) and extends a selection with them.
find_repeat_reverse: MotionIdmotion:find-repeat-reverse — vim’s ,: the last find, reversed (see FindKind::reversed).
match_pair: MotionIdVM.3b: vim’s %. A MOTION, not an action — vim composes it
(d% deletes a bracketed span, v% selects one), and it took being
typed as an action for d% and v% to be silently unbound here.
goto_next_fold: MotionIdVM.3i: vim’s zj / zk, as the motions they are in vim.
goto_prev_fold: MotionIdmotion:goto-prev-fold — vim’s zk: end of the previous fold.
search_next: MotionIdVM.3d-2: vim’s n / N / * / #, as the motions they are in vim.
search_prev: MotionIdmotion:search-prev — vim’s N: repeat the last search in the opposite direction.
search_word_forward: MotionIdmotion:search-word-forward — vim’s *: search forward for the whole word under the cursor.
search_word_backward: MotionIdmotion:search-word-backward — vim’s #: search backward for the whole word under the cursor.
search_word_forward_partial: MotionIdVM.3d-3: vim’s g* / g# — the word under the cursor, matched
anywhere rather than only as a whole word.
search_word_backward_partial: MotionIdmotion:search-word-backward-partial — vim’s g#: # without the whole-word boundaries.
mark_line: MotionIdVM.3e: vim’s 'x / `x, as the motions they are in vim.
display_line_down: MotionIdVM.3g-2: vim’s gj / gk / g0 / g$, as the motions they are.
display_line_up: MotionIdmotion:display-line-up — vim’s gk: one display row up, keeping the screen column.
display_line_start: MotionIdmotion:display-line-start — vim’s g0: first column of the display row.
display_line_end: MotionIdmotion:display-line-end — vim’s g$: last column of the display row.
mark_exact: MotionIdmotion:mark-exact — vim’s `x: the exact position of mark args.char.
viewport_top: MotionIdVM.3f: vim’s H / M / L, as the motions they are in vim.
viewport_middle: MotionIdmotion:viewport-middle — vim’s M: the middle of the lines shown.
viewport_bottom: MotionIdmotion:viewport-bottom — vim’s L: the count-th line from the bottom of the window.
delete: OperatorIdoperator:delete — vim’s d: delete the range and yank it (unnamed register, or "x).
change: OperatorIdoperator:change — vim’s c: delete the range and enter Insert mode.
yank: OperatorIdoperator:yank — vim’s y: copy the range into the register without editing.
indent_left: OperatorIdoperator:indent-left — vim’s <: remove one indent unit (shiftwidth / expandtab, resolved by the host into OperatorContext::indent) from each non-blank line.
indent_right: OperatorIdoperator:indent-right — vim’s >: add one indent unit to each non-blank line.
reindent: OperatorIdIN.7: vim’s = — reindent, leading whitespace only.
reflow: OperatorIdRF.2: vim’s gq and gw — reflow to textwidth. ONE operator
behind both chords; they differ only in cursor placement in vim,
and this preserves the cursor (gw’s behaviour).
reformat: OperatorIdRF.6: g= — the operator form of :format. Not a vim chord;
see operator_reformat for why it exists.
create_fold: OperatorIdVM.3h: vim’s zf, as the operator it is in vim.
upper: OperatorIdoperator:upper — vim’s gU: uppercase ASCII letters in the range.
lower: OperatorIdoperator:lower — vim’s gu: lowercase ASCII letters in the range.
toggle_case: OperatorIdoperator:toggle-case — vim’s g~: toggle the case of ASCII letters in the range.
search: OperatorIdoperator:search — g/ (a Lattice extension, not vim): project-search for the spanned text; emits the same SearchTrigger as :search.
replace_char: OperatorIdoperator:replace-char — vim’s r{char} / Visual r: overwrite each non-newline character in the range with args.char.
inner_paragraph: TextObjectIdtext-object:inner-paragraph — vim’s ip: the run of non-blank lines around the cursor.
around_paragraph: TextObjectIdtext-object:around-paragraph — vim’s ap: ip plus trailing blank lines.
inner_sentence: TextObjectIdtext-object:inner-sentence — vim’s is: the sentence around the cursor.
around_sentence: TextObjectIdtext-object:around-sentence — vim’s as: is plus trailing whitespace.
inner_word: TextObjectIdtext-object:inner-word — vim’s iw: the word around the cursor.
around_word: TextObjectIdtext-object:around-word — vim’s aw: iw plus trailing whitespace.
inner_quote_double: TextObjectIdtext-object:inner-quote-double — vim’s i": inside the surrounding double quotes.
around_quote_double: TextObjectIdtext-object:around-quote-double — vim’s a": i" including the quotes.
inner_quote_single: TextObjectIdtext-object:inner-quote-single — vim’s i': inside the surrounding single quotes.
around_quote_single: TextObjectIdtext-object:around-quote-single — vim’s a': i' including the quotes.
inner_quote_backtick: TextObjectIdtext-object:inner-quote-backtick — vim’s i` : inside the surrounding backticks.
around_quote_backtick: TextObjectIdtext-object:around-quote-backtick — vim’s a` : i` including the backticks.
inner_paren: TextObjectIdtext-object:inner-paren — vim’s i(: inside the innermost enclosing ().
around_paren: TextObjectIdtext-object:around-paren — vim’s a(: i( including the parentheses.
inner_bracket: TextObjectIdtext-object:inner-bracket — vim’s i[: inside the innermost enclosing [].
around_bracket: TextObjectIdtext-object:around-bracket — vim’s a[: i[ including the brackets.
inner_brace: TextObjectIdtext-object:inner-brace — vim’s i{: inside the innermost enclosing {}.
around_brace: TextObjectIdtext-object:around-brace — vim’s a{: i{ including the braces.
inner_tag: TextObjectIdtext-object:inner-tag — vim’s it: inside the innermost enclosing XML/HTML tag pair.
around_tag: TextObjectIdtext-object:around-tag — vim’s at: it including the tags.
inner_big_word: TextObjectIdtext-object:inner-big-word — vim’s iW: the WORD around the cursor.
around_big_word: TextObjectIdtext-object:around-big-word — vim’s aW: iW plus trailing whitespace.
inner_angle: TextObjectIdtext-object:inner-angle — vim’s i<: inside the innermost enclosing <>.
around_angle: TextObjectIdtext-object:around-angle — vim’s a<: i< including the angle brackets.
inner_comment: TextObjectIdtext-object:inner-comment — iC (Lattice): the comment text, first line’s leader stripped. Needs CommentSyntax from the host.
around_comment: TextObjectIdtext-object:around-comment — aC (Lattice): the contiguous run of comment lines, markers included.