;; -*- lexical-binding: t -*- ;; for faces: ~/.emacs.d/emacs-init/help-font-lock.el (require 'help-mode) (require 'super) (require 'scroll) (require 'close) (defvar find-function-C-source-directory) (setq find-function-C-source-directory "~/.emacs.d/emacs-24.1/src") (setq help-window-select t) (defun switch-to-help-buffer () (interactive) (switch-to-buffer "*Help*") ) (defun help-back () (interactive) (help-xref-go-back (current-buffer) )) (defun help-forward () (interactive) (help-xref-go-forward (current-buffer) )) (let ((the-map help-mode-map)) (set-scroll-keys the-map) (set-bury-keys the-map) (define-key the-map "j" #'help-back) (define-key the-map "l" #'help-forward) ) (defun describe-variable-short (var) (interactive (let*((v (variable-at-point)) (var-at-point (not (eq v 0))) (v-name (when var-at-point (let ((name (symbol-name v))) (kill-new name) name ))) (v-final (completing-read (format " variable%s: " (if var-at-point (format " (default %s)" v) "")) obarray (lambda (vv) (or (get vv 'variable-documentation) (boundp vv) )) t ; require match nil ; no text insert nil ; no history v-name )) ) `(,(intern v-final)) )) (message (format " %s: %s" (symbol-name var) (symbol-value var))) ) ;; completion list (let ((the-map completion-list-mode-map)) (set-scroll-keys the-map) (set-close-key the-map) ) (require 'apropos) ;; (setq apropos-mode-hook nil) (defun apropos-mode-hook-f () (set-scroll-keys apropos-mode-map) (set-close-key apropos-mode-map) ) (add-hook 'apropos-mode-hook #'apropos-mode-hook-f) (require 'info) (setq Info-use-header-line t) (defun info-lookup-elisp-symbol (symbol) (interactive "Ssymbol: ") (info-lookup-symbol symbol 'emacs-lisp-mode)) (defun switch-to-info-buffer () (interactive) (switch-to-buffer "*info*") ) (defun Info-copy-current-node-name-elisp () (interactive) (Info-copy-current-node-name 0) ) ;; (setq Info-mode-hook nil) (defun Info-mode-hook-f () (let ((the-map Info-mode-map)) (set-scroll-keys the-map) (set-close-key the-map) ;; kill node name (define-key the-map "c" #'Info-copy-current-node-name-elisp) (define-key the-map "C" #'Info-copy-current-node-name) ;; history (define-key the-map "a" #'Info-history-back) (define-key the-map ";" #'Info-history-forward) ;; nodes (define-key the-map "j" #'Info-backward-node) (define-key the-map "l" #'Info-forward-node) )) (add-hook 'Info-mode-hook #'Info-mode-hook-f) (require 'debug) (defun debugger-mode-hook-f () (let ((the-map debugger-mode-map)) (set-scroll-keys the-map) (set-close-key the-map) )) (add-hook 'debugger-mode-hook #'debugger-mode-hook-f) (provide 'help-new)