Home Explore Blog CI



neovim

13th chunk of `runtime/doc/motion.txt`
e8497446de7fcf128e1717fae685ecf3afab71a6400fd4950000000100000fa8
 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
			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
			buffer.  Defaults to the first character of the first
			line.  See |last-position-jump| for how to use this
			for each opened file.
			Only one position is remembered per buffer, not one
			for each window.  As long as the buffer is visible in
			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
			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
			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
			command changed.  For example when inserting a word,
			the position will be on the last character.
			To jump to older changes use |g;|.

							*'(* *`(*
'(  `(			To the start of the current sentence, like the |(|
			command.

							*')* *`)*
')  `)			To the end of the current sentence, like the |)|
			command.

							*'{* *`{*
'{  `{			To the start of the current paragraph, like the |{|
			command.

							*'}* *`}*
'}  `}			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
			the cursor, on the first non-blank character in the
			line.

							*]`*
]`			[count] times to lowercase mark after the cursor.

							*['*
['			[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.


:loc[kmarks] {command}				*:loc* *:lock* *:lockmarks*
			Execute {command} without adjusting marks.  This is
			useful when changing text in a way that the line count
			will be the same when the change has completed.
			WARNING: When the line count does change, marks below
			the change will keep their line number, thus move to
			another text line.
			These items will not be adjusted for deleted/inserted
			lines:
			- lower case letter marks 'a - 'z
			- upper case letter marks 'A - 'Z
			- numbered marks '0 - '9
			- last insert position '^
			- last change position '.
			- last affected text area '[ and ']
			- the Visual area '< and '>
			- line numbers in placed signs
			- line numbers in quickfix positions
			- positions in the |jumplist|
			- positions in the |tagstack|
			These items will still be adjusted:
			- previous context mark ''
			- the cursor position
			- the view of a window on a buffer
			- folds
			- diffs

:kee[pmarks] {command}				*:kee* *:keep* *:keepmarks*
			Currently only has effect for the filter command
			|:range!|:
			- When the number of lines after filtering is equal to
			  or larger than before, all marks are kept at the
			  same line number.
			- When the number of lines decreases, the marks in the
			  lines that disappeared are deleted.
			In any case the marks below the filtered text have
			their line numbers adjusted, thus stick to the text,
			as usual.
			When the 'R' flag is missing from 'cpoptions' this has
			the same effect as using ":keepmarks".

							*:keepj* *:keepjumps*
:keepj[umps] {command}
			Moving around in {command} does not change the |''|,
			|'.| and |'^| marks, the |jumplist| or the
			|changelist|.

Title: Vim Special Marks and Commands to Jump to Marks
Summary
This section describes additional special Vim marks, including '<' and '>' (start/end of last Visual area), ''' and '`' (position before last jump), '"' and '`"' (cursor position when exiting current buffer), '^' and '`^' (position where Insert mode was stopped), '.' and '`.' (position of last change), '(' and '`)' (start/end of current sentence), and '{' and '`}' (start/end of current paragraph). It also covers commands to jump to marks (]'/`]', ['/`[) and how they move to the next/previous line/mark. It explains the ':lockmarks' command, which prevents marks from being adjusted during a command, and the ':keepmarks' command, which retains marks during a filter command. It also explains the ':keepjumps' command, which prevents movement in a command from changing specific marks, jumplist, or changelist.