I want to share my current Emacs / Lisp setup:
(defvar mk/hyperspec-dir-locations
'("~/cl-sites/HyperSpec-7-0/HyperSpec/"
"~/HyperSpec-7-0/HyperSpec/")
"List of possible locations where the local HyperSpec could reside.")
(defun mk/hyperspec-dir ()
"Finds and returns the URI of the local HyperSpec directory.
Uses `mk/hyperspec-dir-locations' to find the directory."
(let ((dir (seq-find 'file-directory-p mk/hyperspec-dir-locations)))
(if dir
(concat "file://" (and (eq system-type 'windows-nt) "/") (expand-file-name dir))
nil)))
(setq common-lisp-hyperspec-root (mk/hyperspec-dir))
(use-package lisp-mode
:ensure nil
:mode (("\\.lisp$" . lisp-mode)
("\\.lsp$" . lisp-mode)
("\\.cl$" . lisp-mode)
("\\.asd$" . lisp-mode)
("\\.sexp\\'" . lisp-data-mode))
:hook ((lisp-mode . (lambda () (when flymake-mode (flymake-mode -1)))))
:init
(setq inferior-lisp-program "sbcl --noinform")
:config
(setq-local comment-start ";; ")
(setq-local lisp-indent-function 'common-lisp-indent-function))
(use-package sly
:defer t)
Hyperspec can be downloaded from the following page https://www.lispworks.com/downloads/documentation.html