2010年7月13日火曜日

NTEmacs + w3m + HyperSpec


このエントリーをはてなブックマークに追加


うまくいかなかった奴ができて、これでNTEmacsからもHyperSpecが引けるようになった。

■まずw3mを準備する必要がある。
これはcygwinからコンパイル済みのexeとdllを貰ってくることにする。

(Service for UNIXが動いている環境なので、cygwinはインストールしたくない)

w3m.exe
w3mman
cygcrypto-0.9.8.dll


cyggcc_s-1.dll
cygiconv-2.dll
cygintl-8.dll
cygssl-0.9.8.dll
cygwin1.dll
cygz.dll

w3m.exeだけとってきて、実行すると足りないdllを教えてくれるので、それを全部取ってくればよい。
取ってきたexeとdllは c:\emacs\bin 配下に配置する。

■次にemacs-w3mをインストールする。
csvから最新版を取ってくる必要あり。


cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
c:\> cd emacs-w3m
c:\emacs-w3m> c:\emacs\bin\emacs.exe -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install
これで c:\site-lisp\w3mにコンパイルされるので、c:\emacs\site-lispへ移動。
■dot.emacsの定義
;; HyperSpecのパスを指定
;; ここで注意なのは、w3mにはcygwin形式のパスを渡す必要がある。
(require 'hyperspec)
(setq
 common-lisp-hyperspec-root "file:///cygdrive/c/emacs/doc/HyperSpec/"
 common-lisp-hyperspec-symbol-table (expand-file-name "~/doc/HyperSpec/Data/MapSym.txt"))

;; HyperSpecをemacs-w3mで起動
(require 'w3m-load)
(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))

;; 検索したい関数の上で C-c H で検索する。
(global-set-key "\C-cH" 'hyperspec-lookup)

0 件のコメント:

コメントを投稿