When I press C-h k C-SPC
, Emacs shows me:
C-SPC runs the command set-mark-command (found in global-map), which is an interactive compiled Lisp function.
It is bound to C-@, C-SPC.
(set-mark-command ARG)
Set the mark where point is, and activate it; or jump to the mark. Setting the mark also alters the region, which is the text between point and mark; this is the closest equivalent in Emacs to what some editors call the "selection".
With no prefix argument, set the mark at point, and push the old mark position on local mark ring. Also push the new mark on global mark ring, if the previous mark was set in another buffer.
When Transient Mark Mode is off, immediately repeating this command activates ‘transient-mark-mode’ temporarily.
With prefix argument (e.g., C-u C-SPC), jump to the mark, and set the mark from position popped off the local mark ring (this does not affect the global mark ring). Use C-x C-@ to jump to a mark popped off the global mark ring (see ‘pop-global-mark’).
If ‘set-mark-command-repeat-pop’ is non-nil, repeating the C-SPC command with no prefix argument pops the next position off the local (or global) mark ring and jumps there.
With C-u C-u as prefix argument, unconditionally set mark where point is, even if ‘set-mark-command-repeat-pop’ is non-nil.
Novice Emacs Lisp programmers often try to use the mark for the wrong purposes. See the documentation of ‘set-mark’ for more information.
[back]
I don't see where it says what it chooses for ARG
. Apparently, set-mark-command
needs an argument because evaluating (set-mark-command)
results in an error.
How do I find out about the argument passed to set-mark-command
when I hit C-SPC
?