W3 (emacs-w3) とは、Emacs の上で動作するテキストベースの WWW ブラウザです。 また emacs-w3m (emacs-w3m) も同様のものですが、こちらは端末上で動作するテキストベースの WWW ブラウザとして有名な w3m をレンダリングエンジンとして利用しています。
いちいち重い netscape を立ち上げるのは面倒だという場合に便利です。 特に Emacs を使って html ファイルを編集する際なんかに Emacs の中で使えるのが個人的には嬉しかったりします。
emacs-w3m の方が w3m を利用しているが故に軽快で Emacs への負担も少ないです。 w3 は特に遅い計算機の上ではパースに時間がかかるので、これは大きな利点です。 ただ、Emacs 21 の上では w3 だと見出しのフォントの大きさが変化するので、私としてはどちらも捨てがたいです。
ファイルは W3 のホームページ から取ってくることができます。
ただ、これはちょっと版が古いので、Emacs21 で使う場合は問題があります。 これを回避するには、一つは cvs から新しいものを取ってくるという方法があります。 あるいは、.../emacs/21.x/etc/PROBLEM にある対処法を試してみても良いかもしれません。私は一時期これに 有沢さんのパッチをあてて、更に 有沢さん の書かれた 新しい w3-e21.el を組み合わせて使っていました。
現在は、w3-4.0pre.47 に、上の w3-e21.el を組み合わせて使っています。 もっとも、これは MULE 5.0 に対応していないために日本語が文字化けするので、 適当にパッチを当てています。 今のところは大きな問題はないように思います。 (RedHat系 Linux 用の Emacs21 用の SRPM:w3 のページも参照。)
下の例は私場合の設定です。適当に変更して .emacs.el
に書いておけば良いでしょう。
環境変数などから自動で設定される情報もあります。
(autoload 'w3 "w3" "WWW Browser" t) (setq url-personal-mail-address "matsu@math.s.nantoka-u.ac.jp") (setq w3-default-homepage "http://www.math.s.nantoka-u.ac.jp/~matsu/index.html") (setq w3-default-stylesheet "~/.w3/defaults.css")
基本的には M-x w3 で起動します。
TAB,n,b 等でタグを移動します。選択は
RTN です。他の細かいキーについては
C-h m
(describe-mode)
で調べることも出来ますし、
info ファイルもあるので、略。
HTML の編集で yahtml を使っている場合に、 ブラウザとして w3 を使いたい場合は、
(autoload 'w3-fetch "w3") (defadvice yahtml-browse-html (around w3m-yahtml-browse-html activate compile) (w3-fetch (ad-get-arg 0)))
と書いておきます。なお、複数のブラウザを使う場合は yatex:2種類の外部ブラウザを利用したい場合 を参照。
逆に、w3 でローカルな html ファイル閲覧中に、そのファイルやその URL を編集したくなった場合は、s とタイプするという方法もありますが、
私は w3-edit.elというのをでっちあげて、次のようにしてます。
これは、リンクを辿れるようにしたのと、
特にそれが foo.html#bar
のような指定だったときに、<a name="bar">
の位置まで自動的に跳ぶようにしたものです。
使い方ですが、
まず、上のファイルを load-path が通っているディレクトリに置きます。
そして .emacs.el
に次のように書くだけです。
(autoload 'w3-edit-document "w3-edit" nil t) (autoload 'w3-edit-document-at-point "w3-edit" nil t) (setq w3-mode-hook (function (lambda () (progn (define-key w3-mode-map "e" 'w3-edit-document) (define-key w3-mode-map "E" 'w3-edit-document-at-point))))) (setq w3-edit-login-name "matsu") ;; ここは自分の login 名を指定 (setq w3-edit-your-site "isabelle") ;; host 名
環境依存度が高すぎる書き方をしているので、そのまま使えればラッキーという程度のものですが、参考にはなるかもしれません。 後で説明するように emacs-w3m では、もともと類似の機能が付いています。
w3 はスタイルシートも扱えるようです。
が、それだと更に重くなることと、得られる結果も期待通りにはいかないことが多いので、無視したくなることも多いでしょう。
そのようにするには、toolbar の style で allow documents stylesheets のチェックをはずし、同じく option のところでそれを保存すれば OK です。
設定は ~/.w3/profile
に保存されます。
あるいは、直接 (setq-default w3-honor-stylesheets nil)
と書込んでも構わないはずです。
まずは w3m をインストールしないといけません。 私はこれに 坂本さん のインラインで画像を表示できるようにするパッチを当てたものを使っています。 それに加えて emacs-w3m をインストールします。この場合、Emacs 21 を X 上で使っていれば、emacs-w3m でも画像が表示できます。 (RedHat系 Linux 用の Emacs21 用の SRPM:w3m のページも参照。)
取り敢えず私は次のような感じで設定しています。 もっといろいろ機能がありますが、本家の emacs-w3m のページや、附属のファイルに十分な情報が書かれているので、ここでは端折ります。
(autoload 'w3m "w3m" "Interface for w3m on Emacs." t) (autoload 'w3m-find-file "w3m" "Interface for w3m on Emacs." t) (autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE." t) (setq w3m-icon-directory "/usr/local/share/emacs/w3m") (setq w3m-command "w3m") (setq w3m-type 'w3m) (setq w3m-use-filter t) (setq w3m-display-inline-image t) (setq mime-setup-enable-inline-html t) (eval-after-load "mime-view" '(progn (autoload 'mime-w3m-preview-text/html "mime-w3m") (ctree-set-calist-strictly 'mime-preview-condition '((type . text) (subtype . html) (body . visible) (body-presentation-method . mime-w3m-preview-text/html))) (set-alist 'mime-view-type-subtype-score-alist '(text . html) 3)))
emacs-w3m の Tips にも書かれているように、yahtml で HTML ファイルの編集をしている場合、ブラウザとして w3m を使いたい場合は、
(autoload 'w3m-goto-url "w3m") (defadvice yahtml-browse-html (around w3m-yahtml-browse-html activate compile) (w3m-goto-url (ad-get-arg 0) t))
とします。 また、w3m で閲覧中に e や E でそのファイルを編集することができます。