Home Explore Blog CI



neovim

12th chunk of `runtime/doc/motion.txt`
5f8e975e48789cb5cff42e11b77a6f4c4a9391e5d399c9b10000000100000fa3
 deletes marks ^ . [ ]
			   :delmarks \"	      deletes mark "
<

:delm[arks]!		Delete all marks for the current buffer, but not marks
			A-Z or 0-9.  Also clear the |changelist|.

A mark is not visible in any way.  It is just a position in the file that is
remembered.  Do not confuse marks with named registers, they are totally
unrelated.

'a - 'z		lowercase marks, valid within one file
'A - 'Z		uppercase marks, also called file marks, valid between files
'0 - '9		numbered marks, set from |shada| file

Lowercase marks 'a to 'z are remembered as long as the file remains in the
buffer list.  If you remove the file from the buffer list, all its marks are
lost.  If you delete a line that contains a mark, that mark is erased.

Lowercase marks can be used in combination with operators.  For example: "d't"
deletes the lines from the cursor position to mark 't'.  Hint: Use mark 't' for
Top, 'b' for Bottom, etc..  Lowercase marks are restored when using undo and
redo.

Uppercase marks 'A to 'Z include the file name.  You can use them to jump from
file to file.  You can only use an uppercase mark with an operator if the mark
is in the current file.  The line number of the mark remains correct, even if
you insert/delete lines or edit another file for a moment.  When the 'shada'
option is not empty, uppercase marks are kept in the .shada file.  See
|shada-file-marks|.

Numbered marks '0 to '9 are quite different.  They can not be set directly.
They are only present when using a shada file |shada-file|.  Basically '0
is the location of the cursor when you last exited Vim, '1 the last but one
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,
			or yanked text.  Also set when writing the buffer.

							*']* *`]*
']  `]			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
that was operated upon.  After a put command ("p" or "P") the cursor is
sometimes placed at the first inserted line and sometimes on the last inserted
character.  The four commands above put the cursor at either end.  Example:
After yanking 10 lines you want to go to the last one of them: "10Y']".  After
inserting several lines with the "p" command you want to jump to the lowest
inserted line: "p']".  This also works for text that has been inserted.

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
			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
			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

Title: Vim Marks: Deleting, Scope, and Special Marks
Summary
This section continues the discussion on Vim marks, covering the deletion of marks with examples and the special behavior of ':delmarks!'. It elaborates on the properties of marks (invisibility, positions) and distinguishes them from named registers. It explains the scope of lowercase, uppercase (file marks), and numbered marks, including how they are stored and restored. The section also describes the use of marks with operators, and the behavior of uppercase marks across files. Finally, it explains special marks like '[', ']', '<', '>', ''', '"', and '^', which are related to changed/yanked text, Visual mode selections, previous jump locations, last cursor position when exiting a buffer, and last position when stopping Insert mode, respectively.