Conflate Qnil and Qunbound for `symbol-function'.
[emacs.git] / doc / lispref / maps.texi
blob9426dfd4a888d08d94e87cf08e60852db3fe1e8b
1 @c -*-texinfo-*-
2 @c This is part of the GNU Emacs Lisp Reference Manual.
3 @c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc.
4 @c See the file elisp.texi for copying conditions.
5 @node Standard Keymaps
6 @appendix Standard Keymaps
7 @cindex keymaps, standard
9 In this section we list some of the more general keymaps.  Many of
10 these exist when Emacs is first started, but some are loaded only when
11 the respective feature is accessed.
13 There are many other, more specialized, maps than these; in particular
14 those associated with major and minor modes.  The minibuffer uses
15 several keymaps (@pxref{Completion Commands}).  For more details on
16 keymaps, @pxref{Keymaps}.
18 @c Don't list individual major mode keymaps here, only more general things.
19 @c Only add vindex for things not covered elsewhere in this manual.
20 @c Don't add xrefs to things covered in {Keymaps}.
21 @table @code
22 @item 2C-mode-map
23 A sparse keymap for subcommands of the prefix @kbd{C-x 6}.@*
24 @xref{Two-Column,, Two-Column Editing, emacs, The GNU Emacs Manual}.
26 @item abbrev-map
27 @vindex abbrev-map
28 A sparse keymap for subcommands of the prefix @kbd{C-x a}.@*
29 @xref{Defining Abbrevs,,, emacs, The GNU Emacs Manual}.
31 @item button-buffer-map
32 A sparse keymap useful for buffers containing buffers.@*
33 You may want to use this as a parent keymap.  @xref{Buttons}.
35 @item button-map
36 A sparse keymap used by buttons.
38 @item ctl-x-4-map
39 A sparse keymap for subcommands of the prefix @kbd{C-x 4}.
41 @item ctl-x-5-map
42 A sparse keymap for subcommands of the prefix @kbd{C-x 5}.
44 @item ctl-x-map
45 A full keymap for @kbd{C-x} commands.
47 @item ctl-x-r-map
48 @vindex ctl-x-r-map
49 A sparse keymap for subcommands of the prefix @kbd{C-x r}.@*
50 @xref{Registers,,, emacs, The GNU Emacs Manual}.
52 @item esc-map
53 A full keymap for @kbd{ESC} (or @kbd{Meta}) commands.
55 @item facemenu-keymap
56 A sparse keymap used for the @kbd{M-o} prefix key.
58 @item function-key-map
59 The parent keymap of all @code{local-function-key-map} (q.v.) instances.
61 @ignore
62 @c Doesn't exist.
63 @item fundamental-mode-map
64 @vindex fundamental-mode-map
65 The sparse keymap for Fundamental mode.@*
66 It is empty and should not be changed.
67 @end ignore
69 @item global-map
70 The full keymap containing default global key bindings.@*
71 Modes should not modify the Global map.
73 @item goto-map
74 A sparse keymap used for the @kbd{M-g} prefix key.
76 @item help-map
77 A sparse keymap for the keys following the help character @kbd{C-h}.@*
78 @xref{Help Functions}.
80 @item Helper-help-map
81 A full keymap used by the help utility package.@*
82 It has the same keymap in its value cell and in its function cell.
84 @item input-decode-map
85 The keymap for translating keypad and function keys.@*
86 If there are none, then it contains an empty sparse keymap.
87 @xref{Translation Keymaps}.
89 @item key-translation-map
90 A keymap for translating keys.  This one overrides ordinary key
91 bindings, unlike @code{local-function-key-map}.  @xref{Translation
92 Keymaps}.
94 @item kmacro-keymap
95 @vindex kmacro-keymap
96 A sparse keymap for keys that follows the @kbd{C-x C-k} prefix search.@*
97 @xref{Keyboard Macros,,, emacs, The GNU Emacs Manual}.
99 @item local-function-key-map
100 The keymap for translating key sequences to preferred alternatives.@*
101 If there are none, then it contains an empty sparse keymap.
102 @xref{Translation Keymaps}.
104 @item menu-bar-file-menu
105 @itemx menu-bar-edit-menu
106 @itemx menu-bar-options-menu
107 @itemx global-buffers-menu-map
108 @itemx menu-bar-tools-menu
109 @itemx menu-bar-help-menu
110 @cindex menu bar keymaps
111 @vindex menu-bar-file-menu
112 @vindex menu-bar-options-menu
113 @vindex global-buffers-menu-map
114 @vindex menu-bar-tools-menu
115 @vindex menu-bar-help-menu
116 These keymaps display the main, top-level menus in the menu bar.@*
117 Some of them contain sub-menus.  For example, the Edit menu contains
118 @code{menu-bar-search-menu}, etc.  @xref{Menu Bar}.
119 @ignore
120 TODO list all submenus?
121 There are probably too many, and it would not be useful to do so, eg:
122 The Edit menu includes @code{yank-menu}, @code{menu-bar-search-menu},
123 @code{menu-bar-replace-menu}, @code{menu-bar-goto-menu},
124 @code{menu-bar-bookmark-map}, and @code{facemenu-menu}.
125 There is also mule-menu-keymap, set-coding-system-map,
126 setup-language-environment-map, describe-language-environment-map, 
127 menu-bar-epatch-menu, menu-bar-ediff-merge-menu, menu-bar-ediff-menu, etc.
128 @end ignore
130 @item minibuffer-inactive-mode-map
131 A full keymap used in the minibuffer when it is not active.@*
132 @xref{Minibuffer Edit,, Editing in the Minibuffer, emacs, The GNU Emacs Manual}.
134 @item mode-line-coding-system-map
135 @itemx mode-line-input-method-map
136 @itemx mode-line-column-line-number-mode-map
137 @vindex mode-line-coding-system-map
138 @vindex mode-line-input-method-map
139 @vindex mode-line-column-line-number-mode-map
140 These keymaps control various areas of the mode line.@*
141 @xref{Mode Line Format}.
143 @item mode-specific-map
144 The keymap for characters following @kbd{C-c}.  Note, this is in the
145 global map.  This map is not actually mode-specific: its name was chosen
146 to be informative in @kbd{C-h b} (@code{display-bindings}),
147 where it describes the main use of the @kbd{C-c} prefix key.
149 @c FIXME - don't mention this one?
150 @item mouse-appearance-menu-map
151 @vindex mouse-appearance-menu-map
152 A sparse keymap used for the @kbd{S-mouse-1} key.
154 @item mule-keymap
155 The global keymap used for the @kbd{C-x @key{RET}} prefix key.
157 @item narrow-map
158 @vindex narrow-map
159 A sparse keymap for subcommands of the prefix @kbd{C-x n}.
161 @item prog-mode-map
162 The keymap used by Prog mode.@*
163 @xref{Basic Major Modes}.
165 @item query-replace-map
166 @itemx multi-query-replace-map
167 A sparse keymap used for responses in @code{query-replace} and related
168 commands; also for @code{y-or-n-p} and @code{map-y-or-n-p}.  The functions
169 that use this map do not support prefix keys; they look up one event at a
170 time.  @code{multi-query-replace-map} extends @code{query-replace-map}
171 for multi-buffer replacements.  @xref{Search and Replace, query-replace-map}.
173 @item search-map
174 A sparse keymap that provides global bindings for search-related commands.
176 @item special-mode-map
177 The keymap used by Special mode.@*
178 @xref{Basic Major Modes}.
180 @item tool-bar-map
181 The keymap defining the contents of the tool bar.@*
182 @xref{Tool Bar}.
184 @item universal-argument-map
185 @vindex universal-argument-map
186 A sparse keymap used while processing @kbd{C-u}.@*
187 @xref{Prefix Command Arguments}.
189 @item vc-prefix-map
190 The global keymap used for the @kbd{C-x v} prefix key.
192 @item x-alternatives-map
193 @vindex x-alternatives-map
194 @findex x-setup-function-keys
195 A sparse keymap used to map certain keys under graphical frames.@*
196 The function @code{x-setup-function-keys} uses this.
198 @end table