Emacs: Jump to Previous Position
Often, you need to go to a previous position in a buffer.
Emacs has a buffer mark ring that records mark positions and lets you jump to it.
Mark and Jump to Previous Mark
set-mark-command
【Ctrl+Space】- Mark a position. (do it twice to remove the highlight.) This pushes current position into the mark ring.
- 【Ctrl+u Ctrl+Space】 (
set-mark-command
) -
Move cursor to previous marked position in current buffer.
Repeat call move cursor to previously marked positions in current buffer, if set-mark-command-repeat-pop is true.
;; repeated C-u set-mark-command move cursor to previous mark in current buffer (setq set-mark-command-repeat-pop t)
pop-global-mark
【Ctrl+x Ctrl+Space】-
Move cursor to previous marked position (may be in another buffer).
Repeat call move cursor to positions in global-mark-ring.
exchange-point-and-mark
【Ctrl+x Ctrl+x】-
Exchange cursor position and the last mark.
Tip: often used to move cursor to the other end of text selection.
mark-ring, global-mark-ring
Emacs store cursor positions and let you jump to it quickly.
There are 2 mark rings:
- mark-ring
- Buffer Local Variable. A list of former marks of the current buffer, most recent first.
- global-mark-ring
- A list of saved global marks, most recent first.
mark-ring-max, global-mark-ring-max
By default, each mark ring keep 16 positions. As new mark is set, oldest is removed.
You can make it store less positions for better use of jump.
Put this in your Emacs Init File:
(setq mark-ring-max 6) (setq global-mark-ring-max 6)