[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Problem understanding set-register syntax
From: |
Drew Adams |
Subject: |
RE: Problem understanding set-register syntax |
Date: |
Mon, 6 Dec 2010 14:23:26 -0800 |
> in my init.el I have
> (set-register ?i '(file . "~/.emacs.d/init.el"))
> which allows me to quickly jump to my init file using C-x r j i
> But I don't really understand the syntax.
> Why do I have to use the exclamation mark when I set the register?
You mean question mark, I think.
> Why can't I just use:
> (set-register i '(file . "~/.emacs.d/init.el"))
> ; will say Symbol's value as variable is void:i
Because the first argument to `set-register' is a register name, which is a
character, and `?i' is the Lisp syntax for the character `i'.
> I tried to search in the documentation for set-register and
> variable definition but I did not find anything to really explain it.
Please file a doc bug for `C-h f set-register'. The doc should say clearly what
each parameter is. In this case it says nothing about the first parameter
except that it is a register. It expects readers to somehow know that a
register (its name, that is) is of type character.
Relevant doc that will help you:
1. Elisp manual, node `Registers':
"A register is a sort of variable used in Emacs editing that
can hold a variety of different kinds of values. Each
register is named by a single character."
IOW, a register is like a variable in that it has a name and a value. The name
is a character, however, not a symbol.
2. Emacs manual, node `Registers':
"Emacs "registers" are compartments where you can save text, rectangles,
positions, and other things for later use....
Each register has a name that consists of a single character, which
we will denote by R; R can be a letter (such as `a') or a number (such
as `1'); case matters, so register `a' is not the same as register `A'."