diff options
Diffstat (limited to 'lisp/help.el')
| -rw-r--r-- | lisp/help.el | 122 |
1 files changed, 54 insertions, 68 deletions
diff --git a/lisp/help.el b/lisp/help.el index 5141c06981a..cd95af0e866 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -38,7 +38,57 @@ (add-hook 'temp-buffer-setup-hook 'help-mode-setup) (add-hook 'temp-buffer-show-hook 'help-mode-finish) -(defvar help-map (make-sparse-keymap) +(defvar help-map + (let ((map (make-sparse-keymap))) + (define-key map (char-to-string help-char) 'help-for-help) + (define-key map [help] 'help-for-help) + (define-key map [f1] 'help-for-help) + (define-key map "." 'display-local-help) + (define-key map "?" 'help-for-help) + + (define-key map "\C-c" 'describe-copying) + (define-key map "\C-d" 'describe-distribution) + (define-key map "\C-e" 'view-emacs-problems) + (define-key map "\C-f" 'view-emacs-FAQ) + (define-key map "\C-m" 'view-order-manuals) + (define-key map "\C-n" 'view-emacs-news) + (define-key map "\C-p" 'describe-project) + (define-key map "\C-t" 'view-todo) + (define-key map "\C-w" 'describe-no-warranty) + + ;; This does not fit the pattern, but it is natural given the C-\ command. + (define-key map "\C-\\" 'describe-input-method) + + (define-key map "C" 'describe-coding-system) + (define-key map "F" 'Info-goto-emacs-command-node) + (define-key map "I" 'describe-input-method) + (define-key map "K" 'Info-goto-emacs-key-command-node) + (define-key map "L" 'describe-language-environment) + (define-key map "S" 'info-lookup-symbol) + + (define-key map "a" 'apropos-command) + (define-key map "b" 'describe-bindings) + (define-key map "c" 'describe-key-briefly) + (define-key map "d" 'apropos-documentation) + (define-key map "e" 'view-echo-area-messages) + (define-key map "f" 'describe-function) + (define-key map "h" 'view-hello-file) + + (define-key map "i" 'info) + (define-key map "4i" 'info-other-window) + + (define-key map "k" 'describe-key) + (define-key map "l" 'view-lossage) + (define-key map "m" 'describe-mode) + (define-key map "n" 'view-emacs-news) + (define-key map "p" 'finder-by-keyword) + (define-key map "r" 'info-emacs-manual) + (define-key map "s" 'describe-syntax) + (define-key map "t" 'help-with-tutorial) + (define-key map "w" 'where-is) + (define-key map "v" 'describe-variable) + (define-key map "q" 'help-quit) + map) "Keymap for characters following the Help key.") (define-key global-map (char-to-string help-char) 'help-command) @@ -46,73 +96,9 @@ (define-key global-map [f1] 'help-command) (fset 'help-command help-map) -(define-key help-map (char-to-string help-char) 'help-for-help) -(define-key help-map [help] 'help-for-help) -(define-key help-map [f1] 'help-for-help) -(define-key help-map "." 'display-local-help) -(define-key help-map "?" 'help-for-help) - -(define-key help-map "\C-c" 'describe-copying) -(define-key help-map "\C-d" 'describe-distribution) -(define-key help-map "\C-e" 'view-emacs-problems) -(define-key help-map "\C-f" 'view-emacs-FAQ) -(define-key help-map "\C-m" 'view-order-manuals) -(define-key help-map "\C-n" 'view-emacs-news) -(define-key help-map "\C-p" 'describe-project) -(define-key help-map "\C-t" 'view-todo) -(define-key help-map "\C-w" 'describe-no-warranty) - -;; This does not fit the pattern, but it is natural given the C-\ command. -(define-key help-map "\C-\\" 'describe-input-method) - -(define-key help-map "C" 'describe-coding-system) -(define-key help-map "F" 'Info-goto-emacs-command-node) -(define-key help-map "I" 'describe-input-method) -(define-key help-map "K" 'Info-goto-emacs-key-command-node) -(define-key help-map "L" 'describe-language-environment) -(define-key help-map "S" 'info-lookup-symbol) - -(define-key help-map "a" 'apropos-command) - -(define-key help-map "b" 'describe-bindings) - -(define-key help-map "c" 'describe-key-briefly) - -(define-key help-map "d" 'apropos-documentation) - -(define-key help-map "e" 'view-echo-area-messages) - -(define-key help-map "f" 'describe-function) - -(define-key help-map "h" 'view-hello-file) - -(define-key help-map "i" 'info) -(define-key help-map "4i" 'info-other-window) - -(define-key help-map "k" 'describe-key) - -(define-key help-map "l" 'view-lossage) - -(define-key help-map "m" 'describe-mode) - -(define-key help-map "n" 'view-emacs-news) - -(define-key help-map "p" 'finder-by-keyword) (autoload 'finder-by-keyword "finder" "Find packages matching a given keyword." t) -(define-key help-map "r" 'info-emacs-manual) - -(define-key help-map "s" 'describe-syntax) - -(define-key help-map "t" 'help-with-tutorial) - -(define-key help-map "w" 'where-is) - -(define-key help-map "v" 'describe-variable) - -(define-key help-map "q" 'help-quit) - ;; insert-button makes the action nil if it is not store somewhere (defvar help-button-cache nil) @@ -590,7 +576,7 @@ the last key hit are used." (goto-char position))) ;; Ok, now look up the key and name the command. (let ((defn (or (string-key-binding key) - (key-binding key))) + (key-binding key t))) key-desc) ;; Don't bother user with strings from (e.g.) the select-paste menu. (if (stringp (aref key (1- (length key)))) @@ -615,7 +601,7 @@ KEY can be any kind of a key sequence; it can include keyboard events, mouse events, and/or menu events. When calling from a program, pass KEY as a string or a vector. -If non-nil, UNTRANSLATED is a vector of the correspondinguntranslated events. +If non-nil, UNTRANSLATED is a vector of the corresponding untranslated events. It can also be a number, in which case the untranslated events from the last key sequence entered are used." ;; UP-EVENT is the up-event that was discarded by reading KEY, or nil. @@ -635,7 +621,7 @@ the last key sequence entered are used." (when (windowp window) (set-buffer (window-buffer window)) (goto-char position)) - (let ((defn (or (string-key-binding key) (key-binding key)))) + (let ((defn (or (string-key-binding key) (key-binding key t)))) (if (or (null defn) (integerp defn) (equal defn 'undefined)) (message "%s is undefined" (help-key-description key untranslated)) (help-setup-xref (list #'describe-function defn) (interactive-p)) |
