This function returns the documentation string that is recorded in symbol's property list under property property. It retrieves the text from a file if the value calls for that. If the property value isn't
nil, isn't a string, and doesn't refer to text in a file, then it is evaluated to obtain a string.
The last thing this function does is pass the string through
substitute-command-keysto substitute actual key bindings, unless verbatim is non-
nil.(documentation-property 'command-line-processed 'variable-documentation) ⇒ "Non-nil once command line has been processed" (symbol-plist 'command-line-processed) ⇒ (variable-documentation 188902) (documentation-property 'emacs 'group-documentation) ⇒ "Customization of the One True Editor."
This function returns the documentation string of function.
documentationhandles macros, named keyboard macros, and special forms, as well as ordinary functions.
If function is a symbol, this function first looks for the
function-documentationproperty of that symbol; if that has a non-
nilvalue, the documentation comes from that value (if the value is not a string, it is evaluated). If function is not a symbol, or if it has no
documentationextracts the documentation string from the actual function definition, reading it from a file if called for.
Finally, unless verbatim is non-
nil, it calls
substitute-command-keysso as to return a value containing the actual (current) key bindings.
void-functionerror if function has no function definition. However, it is OK if the function definition has no documentation string. In that case,
This function returns the documentation string of face as a face.
Here is an example of using the two functions,
documentation-property, to display the documentation strings for
several symbols in a ‘*Help*’ buffer.
(defun describe-symbols (pattern) "Describe the Emacs Lisp symbols matching PATTERN. All symbols that have PATTERN in their name are described in the `*Help*' buffer." (interactive "sDescribe symbols matching: ") (let ((describe-func (function (lambda (s) ;; Print description of symbol. (if (fboundp s) ; It is a function. (princ (format "%s\t%s\n%s\n\n" s (if (commandp s) (let ((keys (where-is-internal s))) (if keys (concat "Keys: " (mapconcat 'key-description keys " ")) "Keys: none")) "Function") (or (documentation s) "not documented")))) (if (boundp s) ; It is a variable. (princ (format "%s\t%s\n%s\n\n" s (if (user-variable-p s) "Option " "Variable") (or (documentation-property s 'variable-documentation) "not documented"))))))) sym-list) ;; Build a list of symbols that match pattern. (mapatoms (function (lambda (sym) (if (string-match pattern (symbol-name sym)) (setq sym-list (cons sym sym-list)))))) ;; Display the data. (help-setup-xref (list 'describe-symbols pattern) (interactive-p)) (with-help-window (help-buffer) (mapcar describe-func (sort sym-list 'string<)))))
describe-symbols function works like
but provides more information.
(describe-symbols "goal") ---------- Buffer: *Help* ---------- goal-column Option Semipermanent goal column for vertical motion, as set by ... set-goal-column Keys: C-x C-n Set the current horizontal position as a goal for C-n and C-p. Those commands will move to this position in the line moved to rather than trying to keep the same horizontal position. With a non-nil argument, clears out the goal column so that C-n and C-p resume vertical motion. The goal column is stored in the variable `goal-column'. temporary-goal-column Variable Current goal column for vertical motion. It is the column where point was at the start of current run of vertical motion commands. When the `track-eol' feature is doing its job, the value is 9999. ---------- Buffer: *Help* ----------
This function is used only during Emacs initialization, just before the runnable Emacs is dumped. It finds the file offsets of the documentation strings stored in the file filename, and records them in the in-core function definitions and variable property lists in place of the actual strings. See Building Emacs.
Emacs reads the file filename from the emacs/etc directory. When the dumped Emacs is later executed, the same file will be looked for in the directory
doc-directory. Usually filename is
This variable holds the name of the directory which should contain the file
"that contains documentation strings for built-in and preloaded functions and variables.
In most cases, this is the same as
data-directory. They may be different when you run Emacs from the directory where you built it, without actually installing it. See Definition of data-directory.