|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; (find-es "emacs" "find-man-email-2020dec29")
;; (find-eev "eev-blinks.el" "find-man")
;; (find-eev "eev-blinks.el" "find-man-bug")
;; (find-function 'Man-bgproc-sentinel)
;; (find-evariable 'Man-notify-method)
;; (find-evardescr 'Man-notify-method)
;; (find-evariable 'Man-notify-method)
;; (find-efile "man.el")
;; (find-efile "man.el" "(defun Man-notify-when-ready")
;; (find-efile "man.el" "(defun Man-notify-when-ready" "'polite")
;; (find-efile "man.el" "(defun Man-notify-when-ready" "(beep)")
;; (find-efile "man.el" "(defun Man-translate-references")
;; (find-egrep "grep --color -nH --null -e Man-notify-when-ready man.el")
;; (find-egrep "grep --color -nH --null -e Man-cooked-hook man.el")
;; (find-egrep "grep --color -nH --null -e Man-mode-hook man.el")
;; (find-egrep "grep --color -nH --null -e Man-start-calling man.el")
;; (find-egrep "grep --color -nH --null -e Man-bgproc-sentinel man.el")
;; (find-efile "man.el" "(defsubst Man-build-man-command")
;; (find-efile "man.el" "[formatting...]")
;; (find-efile "man.el" "formatted")
;; (find-efile "man.el" "%s man page formatted")
;; (find-efunctionpp 'Man-mode)
;; (load "man.el")
;; (find-man "bash")
;; (find-man "bash(1)")
;; (find-man "bash(1)" "single-character")
;; (find-man "bash(1)" "Do not use the GNU readline")
;; This is a miniature of the real `ee-goto-position'. See:
;; http://angg.twu.net/LATEX/2019emacsconf.pdf#page=5
;; http://angg.twu.net/eev-intros/find-refining-intro.html#1
;; http://angg.twu.net/eev-current/eev-blinks.el.html#ee-goto-position
;;
(defun ee-goto-position-mini (&rest pos-spec-list)
(when pos-spec-list ; if pos-spec-list is non-nil
(goto-char (point-min)) ; then go to (point-min)
(dolist (str pos-spec-list) ; and for each string in pos-spec-list
(search-forward str)))) ; search forward for that string
(setq ee-man-bufname nil)
(setq ee-man-pos-spec-list nil)
(defun ee-man-goto-pos-spec-list ()
(with-current-buffer ee-man-bufname
(apply 'ee-goto-position-mini ee-man-pos-spec-list)))
(defun ee-man-beep ()
"A hack: `ee-find-man' makes `man' run this instead of `beep'."
(ee-man-goto-pos-spec-list)
(switch-to-buffer ee-man-bufname nil t))
(defun ee-find-man (topic &rest pos-spec-list)
"Like (man TOPIC), but also searches for the strings in POS-SPEC-LIST.
Ideally this function should run `ee-man-goto-pos-spec-list'
after the manpage is fully rendered, but I haven't been able to
find a way to do that - HELP! It seems that it is calling
`ee-man-beep' after the man buffer is ready and the backgound
processes are all set up, without waiting for the background
processes to finish..."
(setq topic (Man-translate-references topic))
(setq ee-man-bufname (concat "*Man " topic "*"))
(setq ee-man-pos-spec-list pos-spec-list)
(cl-letf ((Man-notify-method 'polite)
((symbol-function 'beep) (symbol-function 'ee-man-beep)))
(man topic)))
;; Tests:
;; (ee-find-man "bash")
;; (ee-find-man "bash(1)")
;; (ee-find-man "bash(1)" "single-character")
(defun ee-man-beep ()
"A hack: `ee-find-man' replaces `beep' temporarily by this."