browser.dllとbrowserex.lを組み込むことで、html+-modeからxyzzy内でHTMLファイルのブラウザ表示画面をプレビューできるようになります。IE4以上(多分5以降だと思うが)必須になりますが。
まず、browser.dllをDLします。元々の作者であるs.oowadaさんの「SO no page ^^;」よりも、それを改造されたいまいたけをさんの「ななしの人の部屋」のものの方が機能面でよいようです。特に問題がない限り、「static link版」をDLして下さい。アーカイブの中で必要なのはbrowser.dllだけなので、これを「~xyzzy」(=xyzzyのHOMEディレクトリ)に置きます。
次に、OHKUBOさんのサイト「雑記帖」からbrowserex.lをDLします。「xyzzy について少し」から「browserex」に飛んで落としてください。それから、アーカイブの中の「browserex.l」を「~xyzzy/site-lisp」にコピーします。ファイルの中身は特にいじらずに、xyzzy上でバイトコンパイルします。M-x byte-compile-fileを実行して、browserex.lを選んでください。その上で、browserex.lを読み込むように設定すれば、とりあえずは使用可能です。
(load-library "browserex")
デフォルトではキーバインドは特に設定されていないので、siteinit.lに記述します。以下の関数が使用できます。まあ、OHKUBOさんのサイトに十分な見本が公開されているので、ほとんどそれの解説ってことになりますが(右側はその見本によるキーバインドです)。
bx:navigate
bx:navigate-current-buffer
M-F9bx:navigate-current-buffer-directory
M-F10bx:navigate-current-buffer
と同じです。bx:rotate-browser
M-F11bx:close-browser
M-F12bx:browserex-mouse-menu-popup
、bx:browserex-apps-popup
bx:browserex-scroll-up
M-Upbx:browserex-scroll-down
M-Downbx:browserex-scroll-left
M-Leftbx:browserex-scroll-right
M-Rightbx:browserex-scroll-up
bx:browserex-scroll-down
(global-set-key #\M-PageUp #'(lambda () (interactive) (bx:browserex-scroll-up :unit :page))) (global-set-key #\M-PageDown #'(lambda () (interactive) (bx:browserex-scroll-down :unit :page)))バッファ先頭・末尾へ移動する場合
(global-set-key #\M-Home #'(lambda () (interactive) (bx:browserex-scroll-up :unit :all))) (global-set-key #\M-End #'(lambda () (interactive) (bx:browserex-scroll-down :unit :all)))
bx:go-back-browser
M-S-Leftbx:go-forward-browser
M-S-Rightbx:go-home-browser
M-S-Homebx:show-location-browser
M-F7(setq bx:*browser-width* [ピクセル数]) (setq bx:*browser-height* [ピクセル数])
(setq bx:*browser-width* 400) (setq bx:*browser-height* 200)
ブラウザフレームのサイズを指定します。widthが横幅、heightが縦幅です。ブラウザが編集フレームの左右にあるときは横幅が、上下にあるときは縦幅が使われます。それ以外はxyzzyのウィンドウサイズのままです。
(setq bx:*browser-start-page* "[アドレス]")
(setq bx:*browser-start-page* "http://www.google.com/")
bx:navigate
を実行したときにデフォルトで表示されるアドレスを指定します。
;; ndiary-mode から拝借。 (require "wip/winapi") (defun toggle-navigate-current-buffer () (interactive) (cond ((bx:browser-open-p) (bx:close-browser) (winapi:ShowWindow (get-window-handle) 9)) (t (winapi:ShowWindow (get-window-handle) 3) (bx:navigate-current-buffer :position bx:XPIS_LEFT :size 480)))) (global-set-key #\M-F8 'toggle-navigate-current-buffer)
実行すると、ブラウザ画面がないときは、xyzzyを最大化して現在のバッファのファイルをブラウザ画面で表示します。ブラウザ画面があるときは、xyzzyを元のサイズに戻してブラウザ画面を閉じます。
下から3行目の「position bx:XPIS_LEFT
」で、ブラウザ画面の表示位置を変更できます。XPIS_TOP
(上)、XPIS_RIGHT
(右)、XPIS_BOTTOM
(下)です。
下から2行目の「size 480
」でフレームのサイズを指定できます。
なお、これらの指定は*browser-width*とは無関係です。