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