@kyanny's blog

My thoughts, my life. Views/opinions are my own.

MacPorts で Hyperspec をインストール

Hyperspec は Common Lisp の仕様書のことらしい。

$ sudo port install lisp-hyperspec

俺の環境では

/opt/local/share/doc/lisp/HyperSpec-7-0/

以下に HyperSpec/ HyperSpec-Legalese.text HyperSpec-README.text があったのでここを指定すればいいみたい。

;; Hyperspec
(setq common-lisp-hyperspec-root
      (concat "file://" (expand-file-name "/opt/local/share/doc/lisp/HyperSpec-7-0/HyperSpec/"))
      common-lisp-hyperspec-symbol-table
      (expand-file-name "/opt/local/share/doc/lisp/HyperSpec-7-0/HyperSpec/Data/Map_Sym.txt"))

ドキュメントの呼び出しは

M-x hyperspec-lookup

って書いてあるけど SLIME 使ってたら

slime-documentation-lookup
C-c C-d h

でもいける。ブラウザで開くことになる。

emacs-w3m を入れて Hyperspec を Emacs から読めるようにする。

MacPorts で emacs-w3m を入れたら「Emacs-w3m of this version does not support Emacs 23; try the development version」と言われてしまったので CVS Head をとってきて自分で make した。 CVS アクセスは公式ページに書いてある。

    % cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
    CVS password:
    # パスワードは設定されていません.単に Enter/Return キーを押して下さい.
    % cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m

configure スクリプトなかったので autoconf からやった。

$ cd emacs-w3m
$ autoconf
$ ./configure
$ make
$ sudo make install

これで MacPorts から入れたのと同じ場所 /opt/local/share/emacs/site-lisp/w3m にインストールされてたので、以下を .emacs に追記した。

;; emacs-w3m
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/w3m")
(require 'w3m-load)

;; HyperSpecをw3mで見る
(defadvice common-lisp-hyperspec
  (around hyperspec-lookup-w3m () activate)
  (let* ((window-configuration (current-window-configuration))
         (browse-url-browser-function
          `(lambda (url new-window)
             (w3m-browse-url url nil)
             (let ((hs-map (copy-keymap w3m-mode-map)))
               (define-key hs-map (kbd "q")
                 (lambda ()
                   (interactive)
                   (kill-buffer nil)
                   (set-window-configuration ,window-configuration)))
               (use-local-map hs-map)))))
    ad-do-it))

これで完了。適当な .cl ファイルを開いて (defun とかのところで C-c C-d h したら *w3m* バッファがポップアップしてドキュメントが読めた。