I have just explore how to use mark rings in emacs.
There are two kind of mark type
What are the differences between them and is there any option to push all marks to global to reaching from everywhere?
You should pose only one question per question here.
For your first question: *What are the differences between the
mark-ring and the
You really owe it to yourself to learn to ask Emacs:
C-h r is your starting point.
From node Global Mark Ring:
In addition to the ordinary mark ring that belongs to each buffer, Emacs has a single "global mark ring".
Each time you set a mark, this is recorded in the global mark ring in addition to the current buffer’s own mark ring, if you have switched buffers since the previous mark setting.
Hence, the global mark ring records a sequence of buffers that you have been in, and, for each buffer, a place where you set the mark. The length of the global mark ring is controlled by
global-mark-ring-max, and is 16 by default.
If there is something unclear about that then please refine your question or pose another one.
Your second question is unclear to me: Is there any option to push all marks to global to reaching from everywhere?
Are you asking whether the
global-mark-ring could just include all marks from all buffers? If so, the answer is no, there is no such option.
However, if you use Icicles then you have command
icicle-goto-any-marker, which does let you go to any marker from any buffer. It is bound to
C-0 C-SPC. (Perhaps Helm has something similar?) You also have commands
icicle-goto-marker, bound to
C-- C-SPC, and
icicle-goto-global-marker, bound to
C-- C-x C-SPC, which let you navigate among only markers in a given buffer or only global markers, respectively.
icicle-goto-any-markeris an interactive compiled Lisp function in
It is bound to
menu-bar search goto icicles icicle-goto-any-marker.
icicle-goto-marker, but lets you visit markers in all buffers. If user option
icicle-show-multi-completion-flagis non-nil, then each completion candidate is has two parts, the first of which is the name of the marker's buffer, and the second of which is the text from the marker's line.
By default, candidates are sorted in buffer order and then marker order, that is, buffer positions. Use
C-,to change the sort order. Remember too that you can use
C-Ato toggle case-sensitivity (e.g., for buffer names).
See also command