diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-10-17 11:34:02 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-10-17 11:34:02 -0400 |
| commit | 0851e7dabed9fc9c019e22088029f36e9f3ec3e3 (patch) | |
| tree | 35a1abb6a3d08b49e6a45ad3de089b622e1605ae /runtime/doc/motion.txt | |
| parent | f8b704e019ed8194a5e873773670b263abd3dedf (diff) | |
| download | rneovim-master.tar.gz rneovim-master.tar.bz2 rneovim-master.zip | |
docs(help): specify h4 "function signature" format #42434master
Work towards enabling ["flow" layout](https://github.com/neovim/neovim/blob/9244da12e400ec0291450a5e9400d995e7a29b83/src/gen/gen_help_html.lua#L86-L88)
in all `:help` files.
Problem:
The final boss of vimdoc pseudo-structure: Vim's quasi-headings on
function signatures and excmd docs is visually distinctive but too
inconsistent for a nice parse rule.
Solution:
- Define the quasi-heading format as an "h4" variant, specified at
`:help help-tag-heading`.
- For simplicity and predictability, it is defined as any line that
ends with a help tag(s) preceded by 2 or more spaces (or 1 tab).
- Update existing docs.
- This one-time update has a lot of changes, but is very unlikely to
conflict with ported Vim-patches because (1) Vim rarely adds new
*excmds* that we want, and (2) *function* docs are auto-generated.
ref https://github.com/neovim/tree-sitter-vimdoc/issues/110
Diffstat (limited to 'runtime/doc/motion.txt')
| -rw-r--r-- | runtime/doc/motion.txt | 519 |
1 files changed, 269 insertions, 250 deletions
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 85b5a714ee..0ec578612a 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -137,8 +137,8 @@ deletes the character under the cursor and the character below the cursor. > Be careful with forcing a linewise movement to be used charwise or blockwise, the column may not always be defined. - *o_v* -v When used after an operator, before the motion command: Force +v *o_v* + When used after an operator, before the motion command: Force the operator to work charwise, also when the motion is linewise. If the motion was linewise, it will become |exclusive|. @@ -146,13 +146,13 @@ v When used after an operator, before the motion command: Force inclusive/exclusive. This can be used to make an exclusive motion inclusive and an inclusive motion exclusive. - *o_V* -V When used after an operator, before the motion command: Force +V *o_V* + When used after an operator, before the motion command: Force the operator to work linewise, also when the motion is charwise. - *o_CTRL-V* -CTRL-V When used after an operator, before the motion command: Force +CTRL-V *o_CTRL-V* + When used after an operator, before the motion command: Force the operator to work blockwise. This works like Visual block mode selection, with the corners defined by the cursor position before and after the motion. @@ -165,24 +165,26 @@ They stop at the first column and at the end of the line, except "$", which may move to one of the next lines. See 'whichwrap' option to make some of the commands move across line boundaries. -h or *h* -<Left> or *<Left>* -CTRL-H or *CTRL-H* *<BS>* -<BS> [count] characters to the left. |exclusive| motion. +h *h* +<Left> *<Left>* +CTRL-H *CTRL-H* +<BS> *<BS>* + [count] characters to the left. |exclusive| motion. Note: If you prefer <BS> to delete a character, use the mapping: > :map CTRL-V<BS> X < (to enter "CTRL-V<BS>" type the CTRL-V key, followed by the <BS> key) -l or *l* -<Right> or *<Right>* *<Space>* -<Space> [count] characters to the right. |exclusive| motion. +l *l* +<Right> *<Right>* +<Space> *<Space>* + [count] characters to the right. |exclusive| motion. See the 'whichwrap' option for adjusting the behavior at end of line - *0* -0 To the first character of the line. |exclusive| +0 *0* + To the first character of the line. |exclusive| motion. *<Home>* *<kHome>* @@ -193,12 +195,12 @@ l or *l* which differs from "0" when the line starts with a <Tab>. - *^* -^ To the first non-blank character of the line. +^ *^* + To the first non-blank character of the line. |exclusive| motion. Any count is ignored. - *$* *<End>* *<kEnd>* -$ or <End> To the end of the line. When a count is given also go +$ or <End> *$* *<End>* *<kEnd>* + To the end of the line. When a count is given also go [count - 1] lines downward, or as far is possible. |inclusive| motion. If a count of 2 or larger is given and the cursor is on the last line, that is an @@ -209,12 +211,12 @@ $ or <End> To the end of the line. When a count is given also go back from past the end of the line to the last character in the line. - *g_* -g_ To the last non-blank character of the line and +g_ *g_* + To the last non-blank character of the line and [count - 1] lines downward |inclusive|. - *g0* *g<Home>* -g0 or g<Home> When lines wrap ('wrap' on): To the first character of +g0 or g<Home> *g0* *g<Home>* + When lines wrap ('wrap' on): To the first character of the screen line. |exclusive| motion. Differs from "0" when a line is wider than the screen. When lines don't wrap ('wrap' off): To the leftmost @@ -222,8 +224,8 @@ g0 or g<Home> When lines wrap ('wrap' on): To the first character of Differs from "0" when the first character of the line is not on the screen. - *g^* -g^ When lines wrap ('wrap' on): To the first non-blank +g^ *g^* + When lines wrap ('wrap' on): To the first non-blank character of the screen line. |exclusive| motion. Differs from "^" when a line is wider than the screen. When lines don't wrap ('wrap' off): To the leftmost @@ -231,18 +233,18 @@ g^ When lines wrap ('wrap' on): To the first non-blank screen. Differs from "^" when the first non-blank character of the line is not on the screen. - *gm* -gm Like "g0", but half a screenwidth to the right (or as +gm *gm* + Like "g0", but half a screenwidth to the right (or as much as possible). - *gM* -gM Like "g0", but to halfway the text of the line. +gM *gM* + Like "g0", but to halfway the text of the line. With a count: to this percentage of text in the line. Thus "10gM" is near the start of the text and "90gM" is near the end of the text. - *g$* -g$ When lines wrap ('wrap' on): To the last character of +g$ *g$* + When lines wrap ('wrap' on): To the last character of the screen line and [count - 1] screen lines downward |inclusive|. Differs from "$" when a line is wider than the screen. @@ -255,16 +257,16 @@ g$ When lines wrap ('wrap' on): To the last character of When 'virtualedit' is enabled moves to the end of the screen line. - *g<End>* *g<kEnd>* -g<End> Like |g$| but to the last non-blank character +g<End> *g<End>* *g<kEnd>* + Like |g$| but to the last non-blank character instead of the last character. - *bar* -| To screen column [count] in the current line. +| *bar* + To screen column [count] in the current line. |exclusive| motion. Ceci n'est pas une pipe. - *f* -f{char} To [count]'th occurrence of {char} to the right. The +f{char} *f* + To [count]'th occurrence of {char} to the right. The cursor is placed on {char} |inclusive|. {char} can be entered as a digraph |digraph-arg|. Composing characters may be used |utf-8-char-arg|. @@ -274,32 +276,32 @@ f{char} To [count]'th occurrence of {char} to the right. The See |getcharsearch()| |setcharsearch()| - *F* -F{char} To the [count]'th occurrence of {char} to the left. +F{char} *F* + To the [count]'th occurrence of {char} to the left. The cursor is placed on {char} |exclusive|. {char} can be entered like with the |f| command. - *t* -t{char} Till before [count]'th occurrence of {char} to the +t{char} *t* + Till before [count]'th occurrence of {char} to the right. The cursor is placed on the character left of {char} |inclusive|. {char} can be entered like with the |f| command. See |getcharsearch()| |setcharsearch()| - *T* -T{char} Till after [count]'th occurrence of {char} to the +T{char} *T* + Till after [count]'th occurrence of {char} to the left. The cursor is placed on the character right of {char} |exclusive|. {char} can be entered like with the |f| command. - *;* -; Repeat latest f, t, F or T [count] times. +; *;* + Repeat latest f, t, F or T [count] times. See |getcharsearch()| |setcharsearch()| |cpo-;| - *,* -, Repeat latest f, t, F or T in opposite direction +, *,* + Repeat latest f, t, F or T in opposite direction [count] times. See |getcharsearch()| |setcharsearch()| |cpo-;| @@ -307,44 +309,49 @@ T{char} Till after [count]'th occurrence of {char} to the ============================================================================== 3. Up-down motions *up-down-motions* -k or *k* -<Up> or *<Up>* *CTRL-P* -CTRL-P [count] lines upward |linewise|. - -j or *j* -<Down> or *<Down>* -CTRL-J or *CTRL-J* -<NL> or *<NL>* *CTRL-N* -CTRL-N [count] lines downward |linewise|. - -gk or *gk* *g<Up>* -g<Up> [count] display lines upward. |exclusive| motion. +k *k* +<Up> *<Up>* +CTRL-P *CTRL-P* + [count] lines upward |linewise|. + +j *j* +<Down> *<Down>* +CTRL-J *CTRL-J* +<NL> *<NL>* +CTRL-N *CTRL-N* + [count] lines downward |linewise|. + +gk *gk* +g<Up> *g<Up>* + [count] display lines upward. |exclusive| motion. Differs from 'k' when lines wrap, and when used with an operator, because it's not linewise. -gj or *gj* *g<Down>* -g<Down> [count] display lines downward. |exclusive| motion. +gj *gj* +g<Down> *g<Down>* + [count] display lines downward. |exclusive| motion. Differs from 'j' when lines wrap, and when used with an operator, because it's not linewise. - *-* -`-` <minus> [count] lines upward, on the first non-blank +`-` <minus> *-* + [count] lines upward, on the first non-blank character |linewise|. *-_default* By default "-" is mapped to open the parent directory of the current buffer. |dir-mappings| |default-mappings| -`+` or *+* -CTRL-M or *CTRL-M* *<CR>* -<CR> [count] lines downward, on the first non-blank +`+` *+* +CTRL-M *CTRL-M* +<CR> *<CR>* + [count] lines downward, on the first non-blank character |linewise|. - *_* -_ <underscore> [count] - 1 lines downward, on the first non-blank +_ <underscore> *_* + [count] - 1 lines downward, on the first non-blank character |linewise|. - *G* -G Goto line [count], default last line, on the first +G *G* + Goto line [count], default last line, on the first non-blank character |linewise|. If 'startofline' not set, keep the same column. G is one of the |jump-motions|. @@ -353,13 +360,14 @@ G Goto line [count], default last line, on the first <C-End> Goto line [count], default last line, on the last character |inclusive|. -<C-Home> or *gg* *<C-Home>* -gg Goto line [count], default first line, on the first +<C-Home> *<C-Home>* +gg *gg* + Goto line [count], default first line, on the first non-blank character |linewise|. If 'startofline' not set, keep the same column. - *:[range]* -:[range] Set the cursor on the last line number in [range]. +:[range] *:[range]* + Set the cursor on the last line number in [range]. In Ex mode, print the lines in [range]. [range] can also be just one line number, e.g., ":1" or ":'m". @@ -372,8 +380,9 @@ gg Goto line [count], default first line, on the first ({count} * number-of-lines + 99) / 100 See also 'startofline' option. -:[range]go[to] [count] *:go* *:goto* *go* -[count]go Go to [count] byte in the buffer. |exclusive| motion. +:[range]go[to] [count] *:go* *:goto* +[count]go *go* + Go to [count] byte in the buffer. |exclusive| motion. Default [count] is one, start of the file. When giving [range], the last number in it used as the byte count. End-of-line characters are counted depending @@ -390,31 +399,35 @@ character of the line. ============================================================================== 4. Word motions *word-motions* -<S-Right> or *<S-Right>* *w* -w [count] words forward. |exclusive| motion. +<S-Right> *<S-Right>* +w *w* + [count] words forward. |exclusive| motion. -<C-Right> or *<C-Right>* *W* -W [count] WORDS forward. |exclusive| motion. +<C-Right> *<C-Right>* +W *W* + [count] WORDS forward. |exclusive| motion. - *e* -e Forward to the end of word [count] |inclusive|. +e *e* + Forward to the end of word [count] |inclusive|. Does not stop in an empty line. - *E* -E Forward to the end of WORD [count] |inclusive|. +E *E* + Forward to the end of WORD [count] |inclusive|. Does not stop in an empty line. -<S-Left> or *<S-Left>* *b* -b [count] words backward. |exclusive| motion. +<S-Left> *<S-Left>* +b *b* + [count] words backward. |exclusive| motion. -<C-Left> or *<C-Left>* *B* -B [count] WORDS backward. |exclusive| motion. +<C-Left> *<C-Left>* +B *B* + [count] WORDS backward. |exclusive| motion. - *ge* -ge Backward to the end of word [count] |inclusive|. +ge *ge* + Backward to the end of word [count] |inclusive|. - *gE* -gE Backward to the end of WORD [count] |inclusive|. +gE *gE* + Backward to the end of WORD [count] |inclusive|. These commands move over words or WORDS. *word* @@ -450,40 +463,40 @@ between Vi and Vim. ============================================================================== 5. Text object motions *object-motions* - *(* -( [count] |sentence|s backward. |exclusive| motion. +( *(* + [count] |sentence|s backward. |exclusive| motion. - *)* -) [count] |sentence|s forward. |exclusive| motion. +) *)* + [count] |sentence|s forward. |exclusive| motion. - *{* -{ [count] |paragraph|s backward. |exclusive| motion. +{ *{* + [count] |paragraph|s backward. |exclusive| motion. - *}* -} [count] |paragraph|s forward. |exclusive| motion. +} *}* + [count] |paragraph|s forward. |exclusive| motion. - *]]* -]] [count] |section|s forward or to the next "{" in the +]] *]]* + [count] |section|s forward or to the next "{" in the first column. When used after an operator, then also stops below a "}" in the first column. |exclusive| Note that |exclusive-linewise| often applies. In a :terminal buffer each shell prompt is treated as a section. |terminal_]]| - *][* -][ [count] |section|s forward or to the next '}' in the +][ *][* + [count] |section|s forward or to the next '}' in the first column. |exclusive| Note that |exclusive-linewise| often applies. - *[[* -[[ [count] |section|s backward or to the previous "{" in +[[ *[[* + [count] |section|s backward or to the previous "{" in the first column. |exclusive| Note that |exclusive-linewise| often applies. In a :terminal buffer each shell prompt is treated as a section. |terminal_]]| - *[]* -[] [count] |section|s backward or to the previous "}" in +[] *[]* + [count] |section|s backward or to the previous "}" in the first column. |exclusive| Note that |exclusive-linewise| often applies. @@ -542,77 +555,79 @@ always select less text than the "a" commands. Also see `gn` and `gN`, operating on the last search pattern. - *v_aw* *aw* -aw "a word", select [count] words (see |word|). +aw *v_aw* *aw* + "a word", select [count] words (see |word|). Leading or trailing white space is included, but not counted. When used in Visual linewise mode "aw" switches to Visual charwise mode. - *v_iw* *iw* -iw "inner word", select [count] words (see |word|). +iw *v_iw* *iw* + "inner word", select [count] words (see |word|). White space between words is counted too. When used in Visual linewise mode "iw" switches to Visual charwise mode. - *v_aW* *aW* -aW "a WORD", select [count] WORDs (see |WORD|). +aW *v_aW* *aW* + "a WORD", select [count] WORDs (see |WORD|). Leading or trailing white space is included, but not counted. When used in Visual linewise mode "aW" switches to Visual charwise mode. - *v_iW* *iW* -iW "inner WORD", select [count] WORDs (see |WORD|). +iW *v_iW* *iW* + "inner WORD", select [count] WORDs (see |WORD|). White space between words is counted too. When used in Visual linewise mode "iW" switches to Visual charwise mode. - *v_as* *as* -as "a sentence", select [count] sentences (see +as *v_as* *as* + "a sentence", select [count] sentences (see |sentence|). When used in Visual mode it is made charwise. - *v_is* *is* -is "inner sentence", select [count] sentences (see +is *v_is* *is* + "inner sentence", select [count] sentences (see |sentence|). When used in Visual mode it is made charwise. - *v_ap* *ap* -ap "a paragraph", select [count] paragraphs (see +ap *v_ap* *ap* + "a paragraph", select [count] paragraphs (see |paragraph|). Exception: a blank line (only containing white space) is also a paragraph boundary. When used in Visual mode it is made linewise. - *v_ip* *ip* -ip "inner paragraph", select [count] paragraphs (see +ip *v_ip* *ip* + "inner paragraph", select [count] paragraphs (see |paragraph|). Exception: a blank line (only containing white space) is also a paragraph boundary. When used in Visual mode it is made linewise. - *v_al* *al* -al "all lines", select the whole buffer. +al *v_al* *al* + "all lines", select the whole buffer. When used in Visual mode it is made linewise. - *v_il* *il* -il "inner line", select the current line without leading +il *v_il* *il* + "inner line", select the current line without leading or trailing white space. Fails on a blank or white-space-only line. When used in Visual mode it selects the line under the cursor and switches to charwise Visual mode. -a] *v_a]* *v_a[* *a]* *a[* -a[ "a [] block", select [count] '[' ']' blocks. This +a] *v_a]* *a]* +a[ *v_a[* *a[* + "a [] block", select [count] '[' ']' blocks. This goes backwards to the [count] unclosed '[', and finds the matching ']'. The enclosed text is selected, including the '[' and ']'. The |cpo-M| option flag is used to handle escaped brackets. When used in Visual mode it is made charwise. -i] *v_i]* *v_i[* *i]* *i[* -i[ "inner [] block", select [count] '[' ']' blocks. This +i] *v_i]* *i]* +i[ *v_i[* *i[* + "inner [] block", select [count] '[' ']' blocks. This goes backwards to the [count] unclosed '[', and finds the matching ']'. The enclosed text is selected, excluding the '[' and ']'. It's an error to select an @@ -620,18 +635,20 @@ i[ "inner [] block", select [count] '[' ']' blocks. This is used to handle escaped brackets. When used in Visual mode it is made charwise. -a) *v_a)* *a)* *a(* -a( *vab* *v_ab* *v_a(* *ab* -ab "a block", select [count] blocks, from "[count] [(" to +a) *v_a)* *a)* +a( *v_a(* *a(* +ab *vab* *v_ab* *ab* + "a block", select [count] blocks, from "[count] [(" to the matching ')', including the '(' and ')' (see |[(|). Does not include white space outside of the parenthesis. The |cpo-M| option flag is used to handle escaped parenthesis. When used in Visual mode it is made charwise. -i) *v_i)* *i)* *i(* -i( *vib* *v_ib* *v_i(* *ib* -ib "inner block", select [count] blocks, from "[count] [(" +i) *v_i)* *i)* +i( *v_i(* *i(* +ib *vib* *v_ib* *ib* + "inner block", select [count] blocks, from "[count] [(" to the matching ')', excluding the '(' and ')' (see |[(|). If the cursor is not inside a () block, then find the next "(". It's an error to select an empty @@ -639,46 +656,50 @@ ib "inner block", select [count] blocks, from "[count] [(" is used to handle escaped parenthesis. When used in Visual mode it is made charwise. -a> *v_a>* *v_a<* *a>* *a<* -a< "a <> block", select [count] <> blocks, from the +a> *v_a>* *a>* +a< *v_a<* *a<* + "a <> block", select [count] <> blocks, from the [count]'th unmatched '<' backwards to the matching '>', including the '<' and '>'. The |cpo-M| option flag is used to handle escaped '<' and '>'. When used in Visual mode it is made charwise. -i> *v_i>* *v_i<* *i>* *i<* -i< "inner <> block", select [count] <> blocks, from +i> *v_i>* *i>* +i< *v_i<* *i<* + "inner <> block", select [count] <> blocks, from the [count]'th unmatched '<' backwards to the matching '>', excluding the '<' and '>'. It's an error to select an empty inner block like "<>". The |cpo-M| option flag is used to handle escaped '<' and '>'. When used in Visual mode it is made charwise. - *v_at* *at* -at "a tag block", select [count] tag blocks, from the +at *v_at* *at* + "a tag block", select [count] tag blocks, from the [count]'th unmatched "<aaa>" backwards to the matching "</aaa>", including the "<aaa>" and "</aaa>". See |tag-blocks| about the details. When used in Visual mode it is made charwise. - *v_it* *it* -it "inner tag block", select [count] tag blocks, from the +it *v_it* *it* + "inner tag block", select [count] tag blocks, from the [count]'th unmatched "<aaa>" backwards to the matching "</aaa>", excluding the "<aaa>" and "</aaa>". See |tag-blocks| about the details. When used in Visual mode it is made charwise. -a} *v_a}* *a}* *a{* -a{ *v_aB* *v_a{* *aB* -aB "a Block", select [count] Blocks, from `[count] [{` to +a} *v_a}* *a}* +a{ *v_a{* *a{* +aB *v_aB* *aB* + "a Block", select [count] Blocks, from `[count] [{` to the matching "}", including the "{" and "}" (see |[{|). The |cpo-M| option flag is used to handle escaped braces. When used in Visual mode it is made charwise. -i} *v_i}* *i}* *i{* -i{ *v_iB* *v_i{* *iB* -iB "inner Block", select [count] Blocks, from `[count] [{` +i} *v_i}* *i}* +i{ *v_i{* *i{* +iB *v_iB* *iB* + "inner Block", select [count] Blocks, from `[count] [{` to the matching "}", excluding the "{" and "}" (see |[{|). It"s an error to select an empty inner block like "{}". The |cpo-M| option flag is used to handle @@ -834,53 +855,51 @@ restore the mark view. This is the number of lines between the cursor position and the window topline (first buffer line displayed in the window) when it was set. - *m* *mark* *Mark* -m{a-zA-Z} Set mark {a-zA-Z} at cursor position (does not move +m{a-zA-Z} *m* *mark* *Mark* + Set mark {a-zA-Z} at cursor position (does not move the cursor, this is not a motion command). - *m'* *m`* -m' or m` Set the previous context mark. This can be jumped to +m' or m` *m'* *m`* + Set the previous context mark. This can be jumped to with the "''" or "``" command (does not move the cursor, this is not a motion command). - *m[* *m]* -m[ or m] Set the |'[| or |']| mark. Useful when an operator is +m[ or m] *m[* *m]* + Set the |'[| or |']| mark. Useful when an operator is to be simulated by multiple commands. (does not move the cursor, this is not a motion command). - *m<* *m>* -m< or m> Set the |'<| or |'>| mark. Useful to change what the +m< or m> *m<* *m>* + Set the |'<| or |'>| mark. Useful to change what the `gv` command selects. (does not move the cursor, this is not a motion command). Note that the Visual mode cannot be set, only the start and end position. - *:ma* *:mark* *E191* -:[range]ma[rk] {a-zA-Z'} +:[range]ma[rk] {a-zA-Z'} *:ma* *:mark* *E191* Set mark {a-zA-Z'} at last line number in [range], column 0. Default is cursor line. - *:k* -:[range]k{a-zA-Z'} Same as :mark, but the space before the mark name can +:[range]k{a-zA-Z'} *:k* + Same as :mark, but the space before the mark name can be omitted. - *'* *'a* *`* *`a* -'{a-z} `{a-z} Jump to the mark {a-z} in the current buffer. +'{a-z} `{a-z} *'* *'a* *`* *`a* + Jump to the mark {a-z} in the current buffer. - *'A* *'0* *`A* *`0* -'{A-Z0-9} `{A-Z0-9} To the mark {A-Z0-9} in the file where it was set (not +'{A-Z0-9} `{A-Z0-9} *'A* *'0* *`A* *`0* + To the mark {A-Z0-9} in the file where it was set (not a motion command when in another file). - *g'* *g'a* *g`* *g`a* -g'{mark} g`{mark} +g'{mark} g`{mark} *g'* *g'a* *g`* *g`a* Jump to the {mark}, but don't change the jumplist when jumping within the current buffer. Example: > g`" < jumps to the last known position in a file. See also |:keepjumps|. - *:marks* -:marks List all marks, and |extmarks| namespaces (use ":marks +:marks *:marks* + List all marks, and |extmarks| namespaces (use ":marks {ns}" to list them). The |'(|, |')|, |'{| and |'}| marks are not listed. @@ -894,8 +913,8 @@ g'{mark} g`{mark} current buffer are listed: > :marks nvim.multicursor < - *:delm* *:delmarks* -:delm[arks] {marks} Delete the specified marks. Marks that can be deleted +:delm[arks] {marks} *:delm* *:delmarks* + Delete the specified marks. Marks that can be deleted include A-Z and 0-9. You cannot delete the ' mark. They can be specified by giving the list of mark names, or with a range, separated with a dash. Spaces @@ -943,12 +962,12 @@ time, etc. Use the "r" flag in 'shada' to specify files for which no Numbered mark should be stored. See |shada-file-marks|. - *'[* *`[* -'[ `[ To the first character of the previously changed, +'[ `[ *'[* *`[* + To the first character of the previously changed, or yanked text. Also set when writing the buffer. - *']* *`]* -'] `] To the last character of the previously changed or +'] `] *']* *`]* + To the last character of the previously changed or yanked text. Also set when writing the buffer. After executing an operator the Cursor is put at the beginning of the text @@ -963,28 +982,28 @@ Note: After deleting text, the start and end positions are the same, except when using blockwise Visual mode. These commands do not work when no change was made yet in the current file. - *'<* *`<* -'< `< To the first line or character of the last selected +'< `< *'<* *`<* + To the first line or character of the last selected Visual area in the current buffer. For block mode it may also be the last character in the first line (to be able to define the block). - *'>* *`>* -'> `> To the last line or character of the last selected +'> `> *'>* *`>* + To the last line or character of the last selected Visual area in the current buffer. For block mode it may also be the first character of the last line (to be able to define the block). Note that 'selection' applies, the position may be just after the Visual area. - *''* *``* -'' `` To the position before the latest jump, or where the +'' `` *''* *``* + To the position before the latest jump, or where the last "m'" or "m`" command was given. Not set when the |:keepjumps| command modifier was used. Also see |restore-position|. - *'quote* *`quote* -'" `" To the cursor position when last exiting the current +'" `" *'quote* *`quote* + To the cursor position when last exiting the current buffer. Defaults to the first character of the first line. See |last-position-jump| for how to use this for each opened file. @@ -993,14 +1012,14 @@ was made yet in the current file. a window the position won't be changed. Mark is also reset when |:wshada| is run. - *'^* *`^* -'^ `^ To the position where the cursor was the last time +'^ `^ *'^* *`^* + To the position where the cursor was the last time when Insert mode was stopped. This is used by the |gi| command. Not set when the |:keepjumps| command modifier was used. - *'.* *`.* -'. `. To the position where the last change was made. The +'. `. *'.* *`.* + To the position where the last change was made. The position is at or near where the change started. Sometimes a command is executed as several changes, then the position can be near the end of what the @@ -1008,44 +1027,44 @@ was made yet in the current file. the position will be on the last character. To jump to older changes use |g;|. - *':* *`:* -': In a prompt buffer, the start of the current user +': *':* *`:* + In a prompt buffer, the start of the current user input. Text from this mark until end of buffer will be submitted when the user submits the prompt. - *'(* *`(* -'( `( To the start of the current sentence, like the |(| +'( `( *'(* *`(* + To the start of the current sentence, like the |(| command. - *')* *`)* -') `) To the end of the current sentence, like the |)| +') `) *')* *`)* + To the end of the current sentence, like the |)| command. - *'{* *`{* -'{ `{ To the start of the current paragraph, like the |{| +'{ `{ *'{* *`{* + To the start of the current paragraph, like the |{| command. - *'}* *`}* -'} `} To the end of the current paragraph, like the |}| +'} `} *'}* *`}* + To the end of the current paragraph, like the |}| command. These commands are not marks themselves, but jump to a mark: - *]'* -]' [count] times to next line with a lowercase mark below +]' *]'* + [count] times to next line with a lowercase mark below the cursor, on the first non-blank character in the line. - *]`* -]` [count] times to lowercase mark after the cursor. +]` *]`* + [count] times to lowercase mark after the cursor. - *['* -[' [count] times to previous line with a lowercase mark +[' *['* + [count] times to previous line with a lowercase mark before the cursor, on the first non-blank character in the line. - *[`* -[` [count] times to lowercase mark before the cursor. +[` *[`* + [count] times to lowercase mark before the cursor. :loc[kmarks] {command} *:loc* *:lock* *:lockmarks* @@ -1089,8 +1108,7 @@ These commands are not marks themselves, but jump to a mark: When the 'R' flag is missing from 'cpoptions' this has the same effect as using ":keepmarks". - *:keepj* *:keepjumps* -:keepj[umps] {command} +:keepj[umps] {command} *:keepj* *:keepjumps* Moving around in {command} does not change the |''|, |'.| and |'^| marks, the |jumplist| or the |changelist|. @@ -1121,12 +1139,13 @@ following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the commands that start editing a new file. - *CTRL-O* -CTRL-O Go to [count] Older cursor position in jump list +CTRL-O *CTRL-O* + Go to [count] Older cursor position in jump list (not a motion command). -<Tab> or *CTRL-I* *<Tab>* -CTRL-I Go to [count] newer cursor position in jump list +<Tab> *<Tab>* +CTRL-I *CTRL-I* + Go to [count] newer cursor position in jump list (not a motion command). NOTE: In the GUI and in a terminal supporting @@ -1135,11 +1154,11 @@ CTRL-I Go to [count] newer cursor position in jump list both keys are mapped, otherwise the mapping applies to both. Except in tmux: https://github.com/tmux/tmux/issues/2705 - *:ju* *:jumps* -:ju[mps] Print the jump list (not a motion command). +:ju[mps] *:ju* *:jumps* + Print the jump list (not a motion command). - *:cle* *:clearjumps* -:cle[arjumps] Clear the jump list of the current window. +:cle[arjumps] *:cle* *:clearjumps* + Clear the jump list of the current window. *jumplist* Jumps are remembered in a jump list. With the CTRL-O and CTRL-I command you @@ -1257,15 +1276,15 @@ remembered for every change that can be undone, unless it is close to a previous change. Two commands can be used to jump to positions of changes, also those that have been undone: - *g;* *E662* -g; Go to [count] older position in change list. +g; *g;* *E662* + Go to [count] older position in change list. If [count] is larger than the number of older change positions go to the oldest change. If there is no older change an error message is given. (not a motion command) - *g,* *E663* -g, Go to [count] newer position in change list. +g, *g,* *E663* + Go to [count] newer position in change list. Just like |g;| but in the opposite direction. (not a motion command) @@ -1289,8 +1308,8 @@ been deleted. When the `:keepjumps` command modifier is used the position of a change is not remembered. - *:changes* -:changes Print the change list. A ">" character indicates the +:changes *:changes* + Print the change list. A ">" character indicates the current position. Just after a change it is below the newest entry, indicating that `g;` takes you to the newest entry position. The first column indicates the @@ -1314,8 +1333,8 @@ remembered. ============================================================================== 9. Various motions *various-motions* - *%* -% Find the next item in this line after or under the +% *%* + Find the next item in this line after or under the cursor and jump to its match. |inclusive| motion. Items can be: ([{}]) parenthesis or (curly/square) brackets @@ -1357,20 +1376,20 @@ remembered. percentage down the file |N%|. Using '%' on #if/#else/#endif makes the movement linewise. - *[(* -[( Go to [count] previous unmatched '('. +[( *[(* + Go to [count] previous unmatched '('. |exclusive| motion. - *[{* -[{ Go to [count] previous unmatched '{'. +[{ *[{* + Go to [count] previous unmatched '{'. |exclusive| motion. - *])* -]) Go to [count] next unmatched ')'. +]) *])* + Go to [count] next unmatched ')'. |exclusive| motion. - *]}* -]} Go to [count] next unmatched '}'. +]} *]}* + Go to [count] next unmatched '}'. |exclusive| motion. The above four commands can be used to go to the start or end of the current @@ -1379,8 +1398,8 @@ end of the code block, but you can do this from anywhere in the code block. Very useful for C programs. Example: When standing on "case x:", `[{` will bring you back to the switch statement. - *]m* -]m Go to [count] next start of a method (for Java or +]m *]m* + Go to [count] next start of a method (for Java or similar structured language). When not before the start of a method, jump to the start or end of the class. |exclusive| motion. @@ -1425,12 +1444,12 @@ the start of "method_two()" (obviously this is much more useful when the method is long!). Using "2[m" will jump to the start of "method_one()". Using "3[m" will jump to the start of the class. - *[#* -[# Go to [count] previous unmatched "#if" or "#else". +[# *[#* + Go to [count] previous unmatched "#if" or "#else". |exclusive| motion. |