     [file version.texi not included]

This file documents emacs-w3m, an Emacs interface to w3m.

このファイルは Emacs で動く w3m のインタフェースである emacs-w3m に関する説明書です。

Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006 TSUCHIYA Masatoshi

This edition is for emacs-w3m version VERSION.

この版は emacs-w3m バージョン VERSION に対応します。

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.

この文書を、フリーソフトウェア財団発行の GNU 一般公用使用許諾書第 2 版またはそれ以降の版が定める条件の下で複製、配布、あるいは変更することを許可します。

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

この文書は有用とは思いますが, 頒布にあたっては, 市場性及び特定目的適合性についての暗黙の保証を含めて, いかなる保証も行ないません. 詳細については GNU 一般公有使用許諾書をお読みください.

You should have received a copy of the GNU General Public License along with this document; if not, you can either send email to this document's maintainer or write to: The Free Software Foundation, Inc.; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

あなたは, この文書と一緒に GNU 一般公有使用許諾の写しを受け取っているはずです. そうでない場合は, 文書の管理者にメールを送るか、または、フリーソフトウェア財団 (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.) に手紙を書いてください。

Emacs-w3m ユーザマニュアル
******************

Emacs-w3m 開発チーム

この文書は emacs-w3m バージョン VERSION に対応します。

はじめに
****

Emacs/W3 (http://www.cs.indiana.edu/elisp/w3/docs.html) は、かつては Emacs 上で動作する最もポピュラーな web ブラウザーでした。しかし動作が非常に遅かったので、私たちはそれに代わる速いものを欲しました。一方、 w3m (http://w3m.sourceforge.net/) というページャーがありました。それはページャーでしたが、テキストモード WWW ブラウザーとして使うことができたので、私たちは w3m への Emacs インターフェースの開発を始めました。

すばらしい w3m プログラムを開発してくれた伊藤彰則さんと w3m チームのみなさんに、格段の感謝を捧げます。さらにコメント、提案およびバグの修正をしてくれたすべての人々に感謝します。たとえ問題があっても、責任はすべて私たち (emacs-w3m 開発チーム) にあります。もっとも、保証はまったくありませんが。Emacs-w3m は 2000年6月に土屋雅稔によって創始されました。

Emacs-w3m の公式ページ (http://emacs-w3m.namazu.org/) も併せてご覧下さい。

Emacs-w3m を使い始めるのはとっても簡単
************************

ひょっとすると、あなたのシステムには emacs-w3m がすでにインストールされているかもしれません。その場合、あなたはこの項を読み飛ばして、直ちに使い始めることができます。そんな幸運に恵まれなかったならば、emacs-w3m のインストールの仕方を会得するために、読み続けて下さい。

どんなバージョンの Emacs で使えるの?
======================

以下に挙げたいろいろなバージョンの Emacsen で emacs-w3m を動作させることができます。

Emacs 21.x
     追加のパッケージは不要です。

XEmacs 21.x
     第一に、emacs-w3m は XEmacs 21.4.17 以上、および XEmacs 21.5-b19 以上だけをサポートすることに注意して下さい。加えて、timer-funcs.el を含む最新の xemacs-base パッケージをインストールしておく必要があります。

     APEL パッケージと gifsicle プログラムが必要です。さらに、 mailto url を解析するための rfc2368.el モジュールをインストールしておいた方が良いでしょう (see Other Requirements)。

Emacs 20.x, Emacs 19.34 (含 Mule 2.3)
     これらの Emacs を emacs-w3m はサポートしません。

GNU Emacs の開発版 (``Emacs 22'') を使っているのであれば、おそらくCVS 版の emacs-w3m を使わなければならないでしょう。その場合には、メーリングリストに参加することを強く勧めます (see Mailing List)。

w3m を使います: emacs-w3m が速いわけ
==========================

Emacs-w3m は外部コマンド w3m を、ウェブコンテンツを取得するためのバックエンドとして、または HTML の描画エンジンとして使用します。非同期動作によって高速な Emacs ウェブブラウザを実現することができたのは w3m のおかげです。

あなたは最新の w3m をインストールしなければなりません。それは以下の場所で取得できます:

http://prdownloads.sourceforge.net/w3m/

Emacs-w3m を動作させるのに必要なもの
=======================

使用している Emacs のバージョンによっては、サードパーティのパッケージが必要になることがあります。この項では、それらを見つけてインストールするための資料を提供します。

APEL
     XEmacs に不可欠です。Emacs-w3m を構築する前に APEL をインストールしなければなりません。APEL は以下の場所にあります:

     ftp://ftp.m17n.org/pub/mule/apel/apel-10.6.tar.gz

     APEL XEmacs パッケージ (SUMO に含まれています) のバージョン 1.32 より古いものは使えないことに注意して下さい。もしすでにそのような版のパッケージがインストールされているならば、それを更新するか、または上記のリンクで示した APEL で置き換えるために、以下の命令を使って下さい (新規に APEL をインストールする場合も同じ命令を使うことができます):

          % rm -fr /usr/local/lib/xemacs/xemacs-packages/lisp/apel
          % cd apel-10.6
          % make install-package XEMACS=xemacs-21.4.x\
            PACKAGEDIR=/usr/local/lib/xemacs/xemacs-packages

gifsicle
     XEmacs に不可欠です。すべての XEmacs 21.x には、オプティマイズされたアニメーション gif が正常に表示されなかったり、ある種のインターレース gif を表示しようとするとクラッシュしてしまう既知のバグがあります。 Emacs-w3m は gif データを XEmacs 21.x で扱える形式に変換するために、gifsicle プログラムを使います。これは次の場所から入手することができます:

     http://www.lcdf.org/gifsicle/

ImageMagick
     ImageMagick パッケージに含まれている convert プログラムがあれば、 emacs-w3m は画像サイズの変更や favicon 画像を Emacs が扱えるフォーマットに変換するためにそれを使います。Emacs-w3m は ImageMagick が無くても動作するでしょうが、インストールすることによってあなたのネットサーフィンが豊かなものになるでしょう。ImageMagick パッケージは、以下の場所から手に入れることができます:

     ftp://ftp.imagemagick.org/pub/ImageMagick/

     favicon 画像を操作するために、バージョン 5.4.0-5 以降のものを使うことを推奨します。以前のバージョンも動くかもしれませんが、それらは完全にチェックされていません。

FLIM
     Shimbun ライブラリを使うためには FLIM パッケージが必要です。Shimbun ライブラリはウェブ上の新聞を読むための道具類のコレクションで、Gnus、Mew、Nana-gnus、T-gnus、Wanderlust などとともに使うことができます。See Shimbun Library.

     たとえ Emacs 21.x または Emacs 22.x を使っている場合でも、 FLIM パッケージには APEL パッケージが必要であることに注意して下さい。したがって shimbun ライブラリを使うには、 APEL と FLIM の両方をインストールしなければなりません。FLIM パッケージは以下の場所にあります:

     ftp://ftp.m17n.org/pub/mule/flim/flim-1.14/

Mule-UCS
     XEmacs を使うか、または Emacs 21 を使って中国語、日本語、韓国語などのテキストを読む必要があるならば、emacs-w3m が (Unicode システムの代表的な coding system である) UTF-8 でエンコードされたページを表示できるようにするために、Mule-UCS Emacs Lisp パッケージをインストールすることを勧めます。Emacs 21 が Unicode システムを部分的に (例えばラテン・テキストのために) サポートし、Emacs 22 以上がそれを完全にサポートすることに注意してください。Mule-UCS Emacs Lisp パッケージは以下の場所から取得して下さい:

     ftp://ftp.m17n.org/pub/mule/Mule-UCS/Mule-UCS-0.84.tar.gz

     Emacs-21.2 で利用する場合は、 Mule-UCS に このパッチ (http://www.m17n.org/mlarchive/mule/200203/msg00000.html) を適用したほうがいいでしょう。

     XEmacs ユーザ向けには、ここにコンパイル済みのパッケージがあります:

     ftp://ftp.xemacs.org/packages/mule-ucs-1.11-pkg.tar.gz

codepage-ex
     ヨーロッパのいくつかの web サイトは、charset=ISO-8859-1 をテキストのエンコードに指定しているのにもかかわらず、実際には windows-1252 を使います。それらをデコードするのに iso-8859-1 は不十分なので、emacs-w3m は利用可能なら windows-1252 を iso-8859-1 のスーパーセットとして使用します。Emacs 22 から windows-1252 coding system は組み込まれていますが、codepage-ex というモジュールを使うことによって、Emacs 21 でもそれを使えるようにすることができます。以下のページを参照して下さい。

     http://www.nijino.com/ari/emacs/codepage-ex.html

rfc2368.el
     XEmacs 上で動作させる emacs-w3m が、適切に mailto url を解析できるようにしたい場合にインストールして下さい。XEmacs で使うことができる rfc2368.el モジュールは、emacs-w3m の配布の attic ディレクトリにあります。インストールするには rfc2368.el ファイルを load-path が通っているディレクトリにコピーして、以下のコマンドを実行して下さい:

          % xemacs -batch -vanilla -f batch-byte-compile rfc2368.el

Emacs-w3m をインストールする
===================

Emacs-w3m の取得に関しては公式ページ http://emacs-w3m.namazu.org/ を参照して下さい。すべて準備できましたか?  では始めましょう。

非 UNIX 系のシステム (configure を実行できないか make コマンドが無い、何らかのシステム) に emacs-w3m をインストールするには、この項を飛ばして次の項 Non-UNIX-like systems に行って下さい。

 1. 最初に、配布された emacs-w3m の tarball を以下のように適当な場所で展開して、先頭のディレクトリに入って下さい:

          % tar zxf emacs-w3m-VERSION.tar.gz
          % cd emacs-w3m-VERSION

     Emacs-w3m を CVS で取得したのならば、configure スクリプトを生成するために (引数無しで) autoconf を実行しなければなりません。

 2. configure スクリプトを実行します。

          % ./configure

     Gnus ユーザへの重要なお知らせ:

     複数のバージョンの Gnus がインストールされている場合 (リリース版と開発版の Gnus があるかもしれません) は、load-path にあなたが使うバージョンがインストールされているディレクトリ (gnus.elc ファイルを調べましょう) を含むようにして下さい。以下のように --with-addpath オプションを使うことによって、これを確実に行なうことができます:

          % ./configure --with-addpath=/usr/local/share/emacs/site-lisp/gnus

     APEL、FLIM または他の何かを、デフォルトの load-path 以外の標準ではないディレクトリにインストールしてある場合は、以下のように --with-addpath オプションを使ってそれらを指定しなければなりません (さらに、それに : で分けられた Gnus のディレクトリを含めても構いません):

          % ./configure --with-addpath=/opt/share/apel:/opt/share/flim

 3. 単に make と make install を実行します。XEmacs を使っている場合は、さらに次の段落も見て下さい。

          % make
          % make install

     すべての Lisp ファイルと info ファイルが適切なディレクトリにインストールされるでしょう。

     さて、あなたはどんなファイルがどこに行くか分かりますか?  それを前もって知るためには、これを使って下さい:

          % make what-where

     Emacs 21、22 または XEmacs を使っているならば、アイコン画像のファイルをインストールした方が良いでしょう。それを行なうには:

          % make install-icons

     または

          % make install-icons30

     後者はちょっと大きなアイコン画像を使うためのものです。

 4. 以下のように make install の代わりに make install-package を使うことによって、 emacs-w3m を XEmacs パッケージとしてインストールすることもできます:

          % make
          % make install-package

     この場合 make install-icons または make install-icons30 を実行する必要はありません。

     パッケージ・ディレクトリを指定するには二つの方法があります:

       * configure オプションの --with-packagedir= を使います。例です:

               % ./configure --with-packagedir=/opt/xemacs/xemacs-packages
               % make what-where
               % make
               % make install-package

       * 変数 PACKAGEDIR を使います。例です:

               % ./configure
               % make what-where PACKAGEDIR=/opt/xemacs/xemacs-packages
               % make
               % make install-package PACKAGEDIR=/opt/xemacs/xemacs-packages

非 UNIX 系環境でのインストール
==================

あなたのシステムで configure スクリプトを実行することができないか、 make コマンドが利用できない場合は、以下の文句を唱えて下さい。

     % emacs -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install

APEL、FLIM (または他の何か) が普通の場所にインストールされていないと、インストーラはそれらを無視してしまうでしょう。そんな場合は、以下に示すように、それらの場所をインストーラに告げる必要があります:

     % emacs -batch -q -no-site-file -l w3mhack.el //c/share/apel://c/share/flim -f w3mhack-nonunix-install

設定しなければならない最低限のもの
=================

この項では基本的な emacs-w3m の設定のいくつかを説明します。きめ細かな設定をしたいならば、たくさんのカスタマイズ可能な変数を Customizable Variables で見つけることができるでしょう。

Autoloads
     Emacs-w3m を XEmacs パッケージとしてインストール (see Installing Emacs-w3m) してあれば w3m/auto-autoloads.el ファイルが自動ロード (autoload) の面倒を見てくれるので、これは必要ありません。

     それ以外のすべての場合、以下の行を ~/.emacs ファイルに入れて下さい:

          (require 'w3m-load)

Startup File
     Emacs-w3m のいろんな変数をいじる必要があるときは、~/.emacs-w3m ファイル (これは w3m-init-file という変数のデフォルト値です) の利用を推奨します。このファイルは ~/.emacs と似ていますが、こちらは emacs-w3m が起動するときに読み込まれます。w3m-command など幾つかのオプションは、このファイルでは変更できないことに注意して下さい。

Proxy Gateway
     あなたが防火壁 (firewall) の中から proxy ゲートウェイを通してインターネットに接続している場合は、それを使うように w3m に指示する必要があります。

     これにはいくつかの方法があります。一つは環境変数 http_proxy を shell 上で、こんなふうにグローバルに設定することです:

          setenv http_proxy http://proxy.hogege.com:8000/

     他に、変数 w3m-command-arguments をカスタマイズして、-o および http_proxy=http://PROXY_SERVER_NAME:PORT/ を追加する方法があります。これは ~/.emacs-w3m ファイルで以下のように行なうこともできます。

          (setq w3m-command-arguments
                (nconc w3m-command-arguments
                       '("-o" "http_proxy=http://proxy.hogege.com:8000/")))

     Proxy ゲートウェイを通すべきではないホスト (イントラネットのサイトなど) を指定するには、環境変数 no_proxy (no-proxy ではないことにご注意) にコンマで区分けされたホスト名のリストを設定して下さい。あるいは以下のように、変数 w3m-no-proxy-domains にドメイン名 (ホスト名ではない) のリストを設定することもできます:

          (setq w3m-no-proxy-domains '("local.com" "neighbor.com"))

     no_proxy ホストの設定にどうやって正規表現を使うかの説明は、変数 w3m-command-arguments-alist のドキュメントを見て下さい。

基本的な使い方
*******

ネットサーフィンしよう!
============

Emacs-w3m でのウェブブラウジングは、御期待通り、キー操作で全て行なうことができます。Emacs-w3m には、既存のウェブブラウザ／ドキュメントブラウザに基づいた二種類のキー割当て体系 (キーマップ) が用意されています。一つはテキストベースのウェブブラウザ lynx に基づくものです。このキーマップは emacs-w3m のコード中では、w3m-lynx-like-map という変数で定義されています。もう一つは、GNU プロジェクトの標準ドキュメントブラウザ info に基づくものです。このキーマップは w3m-info-like-map という変数で定義されています。ユーザは自分の好みや lynx、info の利用経験に基づいて、どちらかのキーマップを選ぶことができます。キーマップを選択する方法については Customizable Variables を見て下さい。特に選択をしなかった場合、w3m-lynx-like-map がデフォルトのキーマップとして使われます。以降では、w3m-lynx-like-map に基づいて emacs-w3m の使い方を記述します。

ターミナル以外で Emacs が動作している場合、例えば X Window System のクライアントとして Emacs が動作している場合、他の GUI ベースのウェブブラウザと同様にマウスを使ってもブラウジングの基本操作を行なうことができます。キー操作の方が迅速なブラウジングが可能ですが、マウス操作の方が覚えることは少ないです。

とにかく動かしてみよう
-----------

以下に挙げる三つの違うコマンドを使って emacs-w3m を起動することができます。それらのコマンドの一つを試して下さい。ウェブページが ``*w3m*'' という名前の Emacs のバッファ (emacs-w3m のバッファのこと) に表示されます。おそらく気付くでしょうけれども、emacs-w3m のバッファのメジャーモードは w3m-mode です。他にマイナーモード (see Managing Bookmarks) もあります。

ここでは、それらのコマンドの最も基本的な使い方だけを説明します。それらについてもっと詳しく知りたい場合は、Emacs-w3m Functions を参照して下さい。また、emacs-w3m の動作をカスタマイズするために使うことができる変数群を、Customizable Variables で参照して下さい。

w3m
     Emacs-w3m を起動して、w3m-home-page という変数で指定されたホームページを表示します。w3m-home-page のデフォルトの値は ``about:'' です。Emacs-w3m を起動したときに毎回 URL を入力できるようにしたい場合は、変数 w3m-quick-start の値を nil にして下さい (see Customizable Variables)。

     これは Emacs のバッチコマンドとして使うこともできます。以下は例です:

          % emacs -f w3m

     URL を指定して、このように使うこともできます:

          % emacs -f w3m http://emacs-w3m.namazu.org/

w3m-find-file
     ローカルファイル名をミニバッファで入力して、それを emacs-w3m で表示します。

w3m-browse-url
     URL をミニバッファで入力して、それを emacs-w3m で表示します。このコマンドは、どちらかと言えば他のアプリケーションプログラムから emacs-w3m を起動するために用意されています。

あなたがすでに Emacs のユーザならば、emacs-w3m のバッファの中で移動するのに苦労は無いでしょう。多くの標準のキーがそのまま使えるのですから。例えば C-n、C-v それに C-s は emacs-w3m バッファで有効なキーです (これらは一行下降、一ページ送り、または後方単語検索として共通に使われます)。

リンクをたどるには RET キーを使って下さい。それにはポイントをリンクの場所に移動しなければなりません。リンクは普通のテキストとは違って表示されているので、簡単に見分けることができます。それらは下線付き、または違う色になっているはずです。それらの見栄えは w3m-anchor-face というフェースによって決まります (see Customizable Variables)。

RET
     現在位置のリンクが指し示すページを表示します (w3m-view-this-url)。

     このコマンドの振る舞いは、厳密には現在位置のリンクの性質によって、または接頭引数を与えるかどうかに依存します。詳細は Emacs-w3m Functions を参照して下さい。

前述のように、変数 w3m-quick-start の値を nil に設定することによって、M-x w3m コマンドを使ったときに URL を指定することが可能です。Emacs-w3m のバッファでは、入力した新しい URL のページに行くための一般的な方法が、さらに以下の二つあります。

RET
     Emacs-w3m のバッファにおいて、ヘッダラインに表示されている URL の位置にポイントを移動させてから RET を叩くことによって、ミニバッファから URL を入力して、そのページを表示させることができます。Mozilla などの GUI ベースのウェブブラウザに慣れている人にとって、この機能はおなじみですよね。これに関する詳しい説明が Emacs-w3m Functions で見つかるはずです (w3m-view-this-url)。

g
     ミニバッファで URL の入力をうながして、emacs-w3m にそのページを表示させることができます (ポイントの位置とは無関係です)。このキーの割り当ては、すでに Gnus や Mew を利用している人にはおなじみでしょう (w3m-goto-url)。

G
     ミニバッファで URL の入力をうながして、それを新しいセッションで表示します。これはちょうど g (M-x w3m-goto-url) のように動作しますが、新しいセッションを開くところが違います。 Emacs 21、22 または XEmacs で emacs-w3m を使っているならば、新しいセッションを開くということは、そのページを新しいタブで表示することを意味します。タブについてのもっと詳しいことは、Using Tabs を参照して下さい (w3m-goto-url-new-session)。

c
     表示しているページの URL をエコーエリアに表示するとともに、 kill-ring に URL を挿入します (w3m-print-current-url)。

u
     現在位置のリンクが指し示す対象の URL をエコーエリアに表示するとともに、 kill-ring に URL を挿入します (w3m-print-this-url)。

さて、あなたが読んでいるページが今日の時事ニュースかだれかの日記だったら、それを取り込んだ後で新しい内容で置き換えられているかもしれません。次のコマンドを使うと、同じページの最新の内容に更新することができます。(このコマンドは、ページが壊れているように見える場合に、全画面の再描画を強制させるためにも役立てることができます。)

R
     ページを読み込み直します (w3m-reload-this-page)。

ページ内を飛びまわる
----------

Emacs で移動用に割り当てられている馴染み深いキーがウェブページの閲覧中に使えることは、おそらくすでにあなたを魅了しているでしょう。信じてもらえないかもしれませんが、もっとあるのです!  私たちはあなたの時間を大切にしたいので、ポイントの移動、ページのスクロール、あるいはとても速いやり方でリンクを見つけるためのキーを追加しました。それらをマスターすれば、それらがどんなに便利かを分かってもらえるでしょう。

Emacs の標準キーバインドに比べて w3m-mode では、より短いキーストロークでスクロールコマンド群を呼び出せるようにキーが割り当てられています。ウェブページ内でテキストを入力できる個所はかなり特別なので (see Submitting Forms)、たいていのキーは特別な意味を持っていて、そこでは self-insert-command に割り当てられていません。

SPC
     下に向かってスクロールします。more や less コマンド、あるいは Emacs の view-mode を使ったことがあれば、覚えるまでもないキーですよね (w3m-scroll-up-or-next-url)。

DEL
     上に向かってスクロールします。less コマンドや Emacs の view-mode に馴れ親しんでいるあなたの手は、自然にこのキーを叩くでしょう (w3m-scroll-down-or-previous-url)。

>
     左にスクロールします。スクロールの量は w3m-horizontal-scroll-columns で与え、デフォルト値は 10 です (w3m-scroll-left)。

<
     右にスクロールします。スクロールの量は w3m-horizontal-scroll-columns で与え、デフォルト値は 10 です (w3m-scroll-right)。

.
     左にシフトします (小刻みな水平スクロール)。シフトの量は w3m-horizontal-shift-columns で与え、デフォルト値は 2 です (w3m-shift-left)。

,
     右にシフトします (小刻みに水平スクロールです)。シフトの量は w3m-horizontal-shift-columns で与え、デフォルト値は 2 です (w3m-shift-right)。

M-l
     現在ポイントがある位置のテキストが、水平方向に関して中心になるようにスクロールします (w3m-horizontal-recenter)。

w3m-mode メジャーモードでは、いろいろな種類の移動コマンドが定義されています。すなわち、リンク、フォーム、それに画像 (それが表示されていてもいなくても) です。

簡単な例を挙げてみます。広く知られている Google 検索エンジンで単語を調べたいのだとしましょう。ステップ１: emacs-w3m で http://www.google.com を開きます。ステップ２: いったんページが読み込まれたら ] を叩いて下さい。ぐわしっ!  (普通そんな音はしないけれどね。英語版の Tadaa! は漫画などで使われる擬音で、その状況に応じていろいろに訳されます。) ポイントがページの最初の入力フォームに移動しましたね。今や RET を叩いてそこに何かを入力して、 C-c C-c で送ることができます。このコマンド無しでは、そのページに C-n や C-f などを打ち込んで移動しなければならなくて、まったく骨折りなことだったでしょう。

TAB
     次のリンク (emacs-w3m の用語では ``アンカー'') へポイントを移動します。より厳密には、順方向で最も近いアンカーへ移動します。

M-TAB
S-TAB
     前のアンカーへポイントを移動します。より厳密には、逆方向で最も近いアンカーへ移動します (w3m-previous-anchor)。

]
     次のフォームへポイントを移動します。より厳密には、順方向で最も近いフォームへ移動します (w3m-next-form)。

[
     前のフォームへポイントを移動します。より厳密には、逆方向で最も近いフォームへ移動します (w3m-previous-form)。

}
     次の画像へポイントを移動します。より厳密には、順方向で最も近い画像へ移動します (w3m-next-image)。

{
     前の画像へポイントを移動します。より厳密には、逆方向で最も近い画像へ移動します (w3m-previous-image)。

ページ間を渡り歩く
---------

この項ではページからページに移動するやり方を説明します。リンクをたどったり URL を入力する方法はここにはありません (それら二つの方法は Launching and Jumping で説明されています)。

ここには、以前に訪問したページの履歴を後ろに、および前に移動する (他のブラウザでは「戻る」「進む」としておなじみの) コマンドと、仮にもブラウザたるものが義務として提供すべき「ホームページへ移動する」機能があります。あらかじめ Tracing History の項を読んでおいた方が、たぶん理解しやすいでしょう。

B
     以前に訪問したページの履歴を１ページ戻ります (w3m-view-previous-page)。数の引数 N が与えられると N ページ戻ります。これは過去に戻るためのお勧めの方法です。

N
     以前に訪問したページの履歴を１ページ進みます (w3m-view-next-page)。もちろん B で履歴を戻った後でなければ働きません。数の引数 N が与えられると N ページ進みます。このコマンドは、まさに back to the future を実現します!

H
     ホームページへ移動します (w3m-gohome)。ホームページの URL は w3m-home-page という変数で指定します (see Customizable Variables)。w3m-home-page のデフォルトの値は ``about:'' です。

以下のコマンドは、他には無い emacs-w3m の特長です。私たちはそれらの特許を得ることができました。従って、他のいかなる場所でも見つからないでしょう。そのため、今日それらを使うことを学ばなければなりません! (真に受けないで下さいね。ただの冗談ですから。)

^
     現在表示されているページの親ディレクトリへの移動を試みます。例えば、 ``http://foo/bar/baz'' が表示されている場合は ``http://foo/bar/'' に移動しようとします。この機能は次の観察に基づいて実装されました: ウェブブラウザのユーザは、しばしば一段階上のディレクトリに移動しなければなりません。彼らが捜している情報が、現在のページに表示されないから (それが削除されたので、あるいは検索エンジンが間違っているページに連れて行ったため) です。

     他のウェブブラウザを使う場合、一般には、URL から DEL キー等を複数回使って、手作業で末尾のコンポーネントを削除する手間が必要です。 Emacs-w3m では、この操作を ^ のたった一押し! で行なうことができます。

     また、''C-u ^'' と prefix を付けてコマンドを実行すると、そのサイトの最上位まで移動します。

SPC
     現在のポイント位置がバッファの末尾付近にあり、下方向にスクロールできない場合に SPC を押すと「次」のページへ移動します (w3m-scroll-up-or-next-url)。ここで「次のページ」とは、現在読んでいるページのヘッダ内の特別な ``next'' フィールドが指し示しているページのことです。この機能は訪問したページの履歴とは関係ありません。

     一度に巨大なコンテンツを転送するのを待つことが、ユーザにとって快適ではないなどの理由で、いくつかのウェブサイトがそれらのコンテンツを小さな複数のページに分割していることに、おそらく気付いているでしょう。例えば、検索エンジンの検索結果は、しばしばそのように現われます。そんなサイトでは、ユーザはすべての情報にアクセスするために、しばしば一つのページから次のページに、手動でリンクをたどらなければなりません。

     Emacs-w3m は、可能であればこのリンクを明示的にたどる操作をスクロール操作と統合して、複数のページに分割されて提供されるコンテンツを、できれば一枚のウェブページとして閲覧できるよう試みます。

     それはこうして働きます: そのようなウェブサイトでは、分割したウェブページ間のつながりをページのヘッダ内の ``next''、``prev'' あるいは ``previous'' フィールドに記載してある場合があります。Emacs-w3m は何をたどるかを知るために、このフィールドを利用しています。

     二つの操作 (リンクをたどる + スクロール) が Emacs-w3m 上でどのように統合されているのかを、再び Google を例に説明しましょう。 http://www.google.com を開き、ある単語を検索します。もし、あまりにもありふれた単語 (例えば「牛丼」) を検索すると、大量の検索結果を得ることになるでしょう。Google は、その基準を使ってソートした検索結果を複数のウェブページに分割した上で、まず最初のページを返します。SPC を使って最初のページをスクロールさせながら眺めて下さい。そして、そのページの最後がそのウィンドウで見えるまで、スクロールし続けて下さい。そこでは、あなたをびっくりさせるしかけが待っています。Emacs-w3m 以外のブラウザを使って残りの検索結果を見たいと思ったならば、

          Gooooooogle

     の下にならぶ数字のどれか

          1 2 3 4 5 6 7 8...

     をクリックする必要があります。しかし emacs-w3m ならば、単に SPC を押すというスクロールと同じ操作で、リンクをたどることができるのです。

DEL
     ポイント位置がバッファの先頭付近にあり、上方向にスクロールできない場合に DEL を押すと、「前」のページへ移動します (w3m-scroll-down-or-previous-url)。ここで「前」のページとは、現在表示されているページのヘッダ内の ``prev'' あるいは ``previous'' フィールドに指定されているページのことです。この機能は訪問したページの履歴とは関係ありません。SPC (w3m-scroll-up-or-next-url) と同様、ただし逆の動きになります。

マウスを使ってサーフィン
------------

Emacs-w3m の開発者達は、Emacs ギーク (英語版の Info では Emacs otaku) でない普通の人にも emacs-w3m を使ってもらえるように、少し骨を折りました。例えば URL やフォームのテキストの入力を除くほとんどのウェブブラウズ操作を、マウスだけで行なうことができます。それでもなお修飾キーとしてシフトキーが必要になる場合があることに注意して下さい。Emacs-w3m の開発者がみんな Emacs ギークなので...

ウェブ閲覧の最初の基本となる「リンクをたどる操作」には mouse-2 を使って下さい。Emacs 22.1 以上では、mouse-1 でも mouse-1-click-follows-link の値に応じた、リンクをたどる操作を行なうことができます。

mouse-2
     マウスカーソルの下にあるリンクをたどります (w3m-mouse-view-this-url)。

S-mouse-2
     新しいセッション (see Tracing History) のもとでマウスカーソルの下にあるリンクをたどります (w3m-mouse-view-this-url-new-session)。

Emacs-w3m のスクロールバー、メニュー及びツールバーは、マウスを使う場合に役立ちます。ただし Emacs がそれらをサポートしていることが必要で、かつそれらを有効にしていなければなりません。言うまでもないですが、スクロールバーを動かして表示をスクロールさせることができます。メニューバーの「File」を従えて一番左に位置する「W3M」メニューから、この info ドキュメントで紹介している emacs-w3m の様々な機能を呼び出すことができます。主要な機能についてはメニューアイテムを選ぶまでもないことに注意して下さい。代わりにツールバー・アイコンを使うことができます。

タブ (see Using Tabs) を使って emacs-w3m のバッファを切り替えるには、ウィンドウのてっぺんの行を mouse-2 で直接クリックするか、または「W3M」メニューのとなりにある「TAB」メニューから一つを選んで下さい。

普段の生活に戻るには
----------

思い出して下さい。おそらくあなたはウェブを見るために Emacs を始めたのではありません。エディタの内蔵インタープリタを scheme に置き換えたり、ソフトウェアの info ドキュメントを作成したり、ソフトウェアの特許に対する自分の考えを印刷したり...するためだったのではありませんか?  Emacs を使っていた間に、仕事のためにウェブを見る必要に迫られ、しかしたまたま Emacs から離れずにウェブを見ることができてしまったのです。

さぁ、本来の作業に戻る時が来ました。あなたががんばらないと世界は変りません!  すぐにまたウェブを閲覧する必要があるかもしれないなら q を、しばらく emacs-w3m に戻ってくるつもりがないなら Q を使って下さい。

q
     Emacs-w3m のウィンドウと閉じて、他のバッファを選択します (w3m-close-window)。

Q
     Arrived URLs (閲覧履歴, see Tracing History 参照) のリストとクッキー (see Cookie Variables) をディスクに保存して、本当に emacs-w3m を終了します (w3m-quit)。

画像表示を ON/OFF する
===============

あなたが使っているバージョンの Emacs がバッファに画像を表示することができるならば、あたかも Mozilla のような「グラフィカル」ブラウザのように、 emacs-w3m はウェブページにそれらを表示することができます。下記のコマンドのどれかを使おうとする前に、あなたの Emacs が正しく画像表示に使えることを確かめて下さい (see Required Emacs Version)。

現在のバッファにおける画像の表示を切り替えるには T を使って下さい。それによって emacs-w3m はサーバから画像を取ってきて、しかる後にそれらを「グラフィカル」ブラウザとしてそうなるであろうバッファの位置に表示します。もう一度キーを叩くと、画像はバッファから消え去ります。

デフォルトでは emacs-w3m は画像を表示しませんが、その振る舞いを変更して常に画像表示することを選ぶのは可能で、それには変数 w3m-default-display-inline-images をカスタマイズして、その値を nil から t に変更する必要があります。 See Customizable Variables.

さらに emacs-w3m には、画像の拡大縮小、ファイルへのセーブ、または外部ビューワで見る、といった気の利いた機能が付属しています。

T
     現在のバッファ (および後でそれを元に生成されるバッファ) におけるインライン画像の表示をトグルで切り替えます (w3m-toggle-inline-images)。

I
     ポイントの下にある画像を外部ビューワで見ます (w3m-view-image)。

M-i
     ポイントの下にある画像を外部ファイルにセーブします。デフォルトの名前はその画像の元の名前です。それ故に、ほとんどの場合に M-i RET は正しい名前で画像をセーブするでしょう (w3m-save-image)。

M-[
     ポイントの下にある画像を縮小 (zoom out) します (w3m-zoom-out-image)。

M-]
     ポイントの下にある画像を拡大 (zoom in) します (w3m-zoom-in-image)。

時空を遡る
=====

Emacs-w3m には、以前に訪問したすべてのページのリストを提示するための、 2つの方法があります。第一の方法は「emacs-w3m の履歴」 (emacs-w3m history) と単純に呼ばれるもので、そのセッション (注: そのバッファ内で行なう操作とそれに対する反応) において訪問したページのリストを階層的に提示します。すなわち、あるリンクをたどると、それまでのページは行き先の「親」になります。それは、訪れたページの跡をたどったり、履歴が長くなってしまった場合にどこから着たかを思い出すためには、たいへん都合の良いものです。

これは、GNU プロジェクトのホームページをちょっと訪ねた後における、この機能の動作の例です:

     GNU's Not Unix! - the GNU Project and the Free Software Foundation (FSF)
       Philosophy of the GNU Project - Free Software Foundation (FSF)
         GNU Emacs - GNU Project - Free Software Foundation (FSF)
          Order from the Free Software Foundation (FSF)
       Links to Other Free Software Sites - GNU Project - Free Software Fo...
         EFF: Homepage

(実際には、この例は 72 桁に収まるように、少しばかり編集されています。現実の emacs-w3m バッファでは URLs は切り詰められません。)

どの emacs-w3m バッファからでも s キーを使うことによって、このような履歴を提示させることが可能です。

この履歴はバッファ・ローカル、すなわち、ある emacs-w3m のバッファに固有のものであることに注意して下さい。でも emacs-w3m にはユニークな機能があります: あなたが新しいページを訪問する場合、履歴は新しいバッファにコピーされます。その結果、それまでに訪れたページに今まで通りアクセスすることができます。これは、Mozilla などの、新しいバッファでは履歴が常にゼロからスタートするブラウザとは異なります。

Emacs-w3m は単にあなたが訪れたページを記録するだけでなく、あなたがページの正確な同じ場所へ戻りたい場合に、それらのページの中の特定の位置を記録することもできます。C-c C-@ を押すと、カーソルの位置が履歴に登録されます。以前に記録した位置へ移動するには、そのページを開いた emacs-w3m のバッファで C-c C-v を押して下さい。

s
     このセッションにおいて訪問した URLs のリストを表示します。

C-c C-@
     そのページの中のカーソルの位置を履歴に記録します。

C-c C-v
     現在表示しているページにおいて、C-c C-@ (w3m-history-store-position) で記憶した位置へ移動します。

もう一つの過去に訪れたページに関する情報を手に入れる方法は、「arrived URLs」です。これはあなたが emacs-w3m で訪問した、最後の 500個! の URL のリストです。リストは日付順で、最も最近のものを先頭に、それぞれのページの訪問時刻が表示されます。これは例です (info の表示が拡がり過ぎないように編集されています):

     Order from the Free Software Foundation (FSF)             22:53:25
     GNU Emacs - GNU Project - Free Software Foundation (FS    22:53:05
     Philosophy of the GNU Project - Free Software Foundati... 22:52:46
     Philosophy of the GNU Project - Free Software Foundati... 22:52:39
     EFF: Homepage                                             22:52:18
     Links to Other Free Software Sites - GNU Project - Fre... 22:52:07
     Links to Other Free Software Sites - GNU Project - Fre... 22:52:07
     GNU's Not Unix! - the GNU Project and the Free Softwar... 22:51:32
     Bookmarks                                                 22:51:02
     The DICT Development Group- upwards                       2003-01-08
     the monkey puzzle: new debian packages as an rss feed     2003-01-08
     new-debian-packages.rss                                   2003-01-07
     it's a miracle                                            2003-01-06

前のコマンドに接頭引数を渡す、すなわち C-u s を使うことによって、この履歴を得ることができます。このページに表示される URLs の数はカスタマイズできます。変数 w3m-keep-arrived-urls を参照して下さい。それはデフォルトでは 500 を越えることはできません。See Customizable Variables.

もちろん、すべての場合に、例に示されているすべての行はリンクです。そのリンクをたどることによって、通常のページを訪問していたらちょうどそうなるように、以前に訪ねたどのページにも行くことができます。

s

C-u s
     このセッションにおいて訪問した URLs のリストを表示します。接頭引数付きで呼ばれると、代わりに arrived URLs を表示します (w3m-history)。

Moving over pages の項も見て下さい。そこでは「戻る」「進む」などの機能に割り当てられた単純なキーで、履歴の中を移動するやり方を説明しています。

ぼくの/わたしのお気に入り
=============

現代的なあまたのブラウザの例に漏れず、emacs-w3m には先進のブックマークの機能があります。それによってカテゴリー毎に分類し、それらを編集し、ああ、もちろん簡単に閲覧することができます。

日本語版注釈: ブックマークの語源は、本に挟む栞 (しおり) のことです。

お気に入りに URL を加える
---------------

ブックマークに URL を加えるには、いくつかのやり方があります。最初の一つは、a キーを使って (または w3m-bookmark-add-current-url コマンドを呼んで) 今現在閲覧しているページを加えることです。すると、そのブックマークをどの項目に入れるかを尋ねられ (TAB キーによる補完が効きます)、タイトルの書き換えが促されます (デフォルトは、そのページのタイトルになっています)。これらの二つをこなしたら、それらを有効にするために RET を叩いて下さい。すると ``Added'' というメッセージがミニバッファに現れて、(驚くなかれ!) そのページがブックマークに記録されます。

ブックマークを加えるもう一つの方法は、M-a を使う (または w3m-bookmark-add-this-url コマンドを呼ぶ) ことです。これは、現在位置の URL (もしそのリンクをたどると、閲覧することができる URL) をブックマークに加えます。その場合でも最初に説明した方法と同様に、項目の名前とタイトルを入力しなければなりません。そのとき、それらのデフォルトはリンク自体の名前になっています。

最後に、三番目の方法は C-u a を叩くことです。このときは、ブックマークに加える URL、その項目、およびタイトルの入力が促されます。

a
     現在のページをブックマークに加えます。接頭引数付きで呼ばれた場合は、加える URL の入力が求められます (w3m-bookmark-add-current-url)。

M-a
     現在位置の URL をブックマークに加えます (w3m-bookmark-add-this-url)。

ブックマークを閲覧する
-----------

ブックマークされたページを閲覧する最も簡単な方法は、emacs-w3m のバッファで v キーを叩くことです。ですがもう一つ、特別な URL である about://bookmark/ に行くことによっても可能です。すると一行あたり一つずつのブックマークが、項目ごとにまとめられて表示されるでしょう。そこでは、他のページを閲覧するのと同じように、それらを確実に閲覧することができます。

ブックマークのページでは bookmark マイナーモードが働いています。それは、ブックマークを編集するためのキーバインドを追加します。See Editing Bookmarks.

v
     ブックマークのページを呼び出します (w3m-bookmark-view)。

ブックマークを変更するには?
--------------

Bookmark マイナーモード (see Consulting Bookmarks) は、ブックマークを編集するためにいくつかのキーバインドを設けています。中でもブックマークを kill (すなわち消去) するための C-k とブックマーク・ファイルを編集するための E は、最も注目に値します。

ブックマークは HTML ファイルに収められています。したがってそのファイルは手で編集することができますが、十分に注意して下さい。emacs-w3m が項目名を認識するために必要なコメントを消してしまうことによって、ものごとは簡単に台無しになります。あなたが HTML の基本を知っていれば、むしろそのファイルの中身は極めて分かり易いものでしょう。

C-k
     現在位置のブックマークを kill します (w3m-bookmark-kill-entry)。

E
     ブックマーク・ファイルを読み込んで、編集可能な状態にします (w3m-bookmark-edit)。

C-_
     やり直しをします (w3m-bookmark-undo)。

みんなタブが好きだよね
===========

ほとんどの他のテキストベースのブラウザーと異なり、emacs-w3m はタブによる閲覧をサポートしています。タブによる閲覧って何? と尋ねられそうですね。それはとても単純で、ウィンドウのてっぺんの行にすべてのバッファを単純かつ分かりやすいやり方で表示することによって、単一のウィンドゥですべての emacs-w3m のバッファを表現する方法です。それぞれのバッファは「タブ」として表示されます。この行は、他のバッファに移動したり、ページの状態を知ることができるようにするために常に見えたままになっていて、バッファにつられてスクロールしません。

その感触をつかむ最も簡単な方法は、単に試してみることです。ですから、引き続いて emacs-w3m のセッションを始めて下さい。何も設定変更をしていなければ、デフォルトでタブの行が現れます。てっぺんで、小さな四角に現在のページのタイトルを表示している明るい行がそれです。では、(例えば G で) 別の w3m バッファを作ってみましょう。すると四角が二つになったでしょう。それらがタブです。

もっとも分かりやすいタブの使い道は切り替えです: タブの上で mouse-1 ボタンをクリックすることによって、そのバッファを表示させることができます。mouse-2 ボタンでも動作します。これは、複数の emacs-w3m バッファを使うための、非常に速くて簡単な方法です。単に指し示してクリックすれば良いのですから。(はいはい、あなたを無視していませんよ。あなたはキーボードを使って切り替えたいのですね。ご心配無く。それも可能です。次の節で説明しますから、黙って読み続けて下さい!)

もう一つの気が利いた機能は、ページの状態を知らせることです。カラー端末かウィンドゥシステムを使っていれば、ページの状態を知らせるために emacs-w3m は違う色でテキストをタブに表示します (XEmacs はすべてのタブをいつも同じ色で表示しますが、選択されたタブと他のものを区別したり、モードラインで現在のページの状態を知ることは簡単です。)。例えばベージを取り込んでいる最中はテキストは赤くなっていて、取り込みが完了するとデフォルトの色 (通常は黒) に戻ります。これにより、見ようと思って待っているページが到着したかどうかが、タブ行を一目見ただけで分かります。

最後に、もしウェブページが favicon を持っていれば、それもタブに表示されます (XEmacs では今のところタブ行に favicon は表示されません。)。 Emacs-w3m ユーザにもっと視覚効果を!

ユーザオプション:

w3m-use-tab
     タブによる閲覧を活かすかどうか。

バッファを作る/消す/移動する
===============

遅かれ早かれあなたは emacs-w3m 中毒になって、すべてのウェブの閲覧をそれで賄わなければならなくなるでしょう。あなたがめげてしまいそうなこの任務を手伝うために、emacs-w3m のバッファで動作するたくさんの違う手段を考えました。

バッファを作ったり消したり
-------------

時に、ウェブページを開かないで単に新しいバッファーを作ることが役に立つことがあります。この操作を emacs-w3m の用語では「ふたごのコピーを作る」 (creating a twin copy) と言います。これは単に、その内容が現在のバッファと同一な新しいバッファを作ります。

この反対はバッファーを閉じることで、今はその内容に興味が無い一つのバッファを、単に閉じることができます。あるいは、現在のバッファ以外のすべてを閉じることを決断しても良いです。以下のコマンドでそれを行なって下さい:

C-c C-t
     現在のバッファと同一のコピーを新しい名前で作ります。これは新しいバッファにウェブページを取り込まずに、新しいセッションを始めるのに使います (w3m-copy-buffer)。

C-c C-w
     現在の emacs-w3m のバッファを閉じます (w3m-delete-buffer)。

C-c M-w
     現在のもの以外のすべての emacs-w3m のバッファを閉じます (w3m-delete-other-buffers)。

バッファ間の移動
--------

最も頻繁に使うコマンドがたぶん隣のバッファに行くものであろうことは、世間の認めるところでしょう。それは、現在の「後」か「前」のバッファです。この意味はタブを使ってみればよくわかります。次のバッファは現在の右側の一つ後、前のバッファは左側です。しかし、残念ながら XEmacs はタブを順不同に表示するので、どれが隣のバッファかを知るには、各タブに表示されている数字に注目する必要があります。これらのコマンドに割り当てられているキーは C-c C-p と C-c C-n です。

これらのコマンドは数字接頭引数の習慣を理解します。すなわち、それらを数 N を引数として呼ぶと、現在のバッファから N 個離れたバッファに行きます。例えば、現在位置から右にバッファを二個分 (すなわちバッファ二個分だけ次に) 移動するには、2 C-c C-n を使って下さい (いつものように、 2 C-c C-n の代わりに C-u 2 C-c C-n を使っても良いのですが、 emacs-w3m のバッファではすべての数字キーとマイナス記号が数の接頭引数に割り当てられていることを覚えておいて下さい。)。

C-c C-p
     前の emacs-w3m バッファに移動します。Emacs 21 以上では、これは通常タブ行において左方向に次です。数の引数 N を付けて使うと、バッファを N 個分前に移動します (w3m-previous-buffer)。

C-c C-n
     次の emacs-w3m バッファに移動します。Emacs 21 以上では、これは通常タブ行において右方向に次です。数の引数 N を付けて使うと、バッファを N 個分次に移動します (w3m-next-buffer)。

私たちが骨を折ったにもかかわらず、これらのコマンドがお気に召さないならば、あなたが欲しいものが ibuffer や iswitchb のような万能志向の人 (generalist) 向けのバッファ管理パッケージの中にあるかどうかを探してみるのも良いかもしれません。emacs-w3m バッファは Emacs の正規のバッファですから、それらもまた良好に動作するでしょう。

リストからバッファを選ぶ
------------

リストから emacs-w3m のバッファを選ぶための二つのやり方があります。一つ目は、C-c C-a で呼び出されるミニバッファ・ベースのインターフェースです。表示したいバッファを、M-p と M-n キー (または ↑ と ↓ キー) を使って選ぶことができ、それらはリストの中で循環します。また、プロンプトを編集して、TAB の補完を使って既存のウェブページのタイトルを書き込むこともできます。例えば、``Google Search'' のページを開いてあるならば、``Goo'' に続けて TAB を叩くことによって、そのページのタイトルが完成します。ページの名前の後ろには、 (鍵括弧で挟まれた) バッファの名前が付きます。そして RET を使うと、あなたが選んだバッファに切り替わります。

二つ目のもっと洗練されたインターフェースは emacs-w3m バッファリストと言い、C-c C-s で起動されます。それは分割されたウィンドゥにすべての開いているバッファを表示し (C-c C-s で表示形式が切り替わります)、実時間でバッファを見ることができるようになります。そのバッファリストの中でポイントを移動すると、ポイントのところにあるバッファが主ウィンドゥに表示され、バッファの切り替えが直接目に見える形で返ってくるのです。

バッファリストの中を移動するには p と n キー (または矢印キー) を使って下さい。バッファリストでは、DEL と SPC で主ウィンドゥに表示されているバッファをスクロールさせることが可能で、これは正しいバッファを見ているかどうかをチェックしたいときに便利です。ポイントのところにあるバッファを選びたいときは RET キーを使って下さい。この場合はバッファリストが隠されます。あるいは、w キーを使った場合はバッファリストは表示されたままで、主ウィンドゥにフォーカスします。

また、このメニューで普通のバッファで使われるのと同じキー割り当て (see Creating and killing buffers) で、バッファを閉じたり作ることもできます。

最後に、? はヘルプの表示、g はリストの作り直し、そして q はバッファリストの終了を主ウィンドゥのバッファは変更せずに、それぞれ実行します。

C-c C-a
     ミニバッファでバッファ名の入力を求めます。M-p と M-n で既存のバッファが循環し、TAB で補完できます (w3m-switch-buffer)。

C-c C-s
     分割されたウィンドゥにバッファリストを表示します (w3m-select-buffer)。このウィンドゥでは C-c C-s で水平と垂直モードが切り替わり、RET でポイントのところにあるバッファを選んでバッファリストは隠蔽、w でポイントのところにあるバッファを選んでそれにフォーカス、n と p それに矢印キーが上下の移動に使えます。

ファイルをダウンロードする
=============

どんなウェブページやファイルも emacs-w3m でダウンロード (すなわち取得、表示ではありません) できます。単にダウンロードしたいリンクにポイントを置いて d を叩いて下さい。ローカルにセーブするファイル名が尋ねられます。デフォルトでは遠隔サーバーにおけるファイルの名前になります。それで良ければ RET を押して下さい。ダウンロードは非同期に実行され、 Emacs で行なっている他の仕事の邪魔をしないので、そうしたければ他のバッファで emacs-w3m による閲覧を続けることができます。

このダウンロードの仕組みは w3m を使うのですが、代わりにもっと強力な wget を使うことも考慮してみて下さい。私たちのお友だちプロジェクトである ``emacs-wget'' を覗いてみましょう。そのホームページはここ http://pop-club.hp.infoseek.co.jp/emacs/emacs-wget/ です。

d
     ポイントのところにあるリンクが指し示すファイルかページをダウンロードします (w3m-download-this-url)。

HTML フォームに記入する
==============

これらの emacs-w3m コマンドは、単純なキーバインドと専用の Emacs のウィンドゥかミニバッファを使って、フォームからフォームへの移動とフィールドに入力するための機能を提供します。

覚えておいて欲しい大事なキーバインドは RET です。これは現在位置にあるものによって異なる意味を持ちます。テキスト領域 (textarea) では、ミニバッファで値を入力することが促されます。選択用のタグでは、選択肢のリストが Emacs のエレクトリック (electric == 自己挿入) ウィンドゥに現れます (そこでは矢印キーで移動して、RET キーで一つを選ぶことができます)。ラジオボタンおよびチェックボックスでは、RET キーでそれらのうちの一つを選びます。

ミニバッファかエレクトリック・ウィンドゥにいるときは、C-c C-q キーで取り消すことができます。フォームに記入したものを送り出すには C-c C-c を使って下さい。

]
     次のフォームにジャンプします (w3m-next-form)。

[
     前のフォームにジャンプします (w3m-previous-form)。

C-c C-c
     現在位置のフォームに記入したものを送り出します (w3m-submit-form)。

RET
     現在位置にあるのフォーム値を書き換えます。

RET (w3m-form-*-keymap)
     その値を選択します。

C-c C-q (w3m-form-*-keymap)
     フォームの編集を中断して、変更を取り止めます。

w3m-form-use-textarea-backup が nil に設定されていなかったら、textarea で入力したテキストを後で再利用できるように、バックアップ・ファイルに記録します。フォームの編集を始めるときにバックアップされたテキストがあったら、それを使うかどうかを尋ねられるでしょう。テキストを保存するためのファイルは、変数 w3m-form-textarea-directory で指定されるディレクトリに格納されます。

ウェブページ作りとハックのお手伝い
=================

いつもドキュメントの執筆環境として、あるいはソフトウェアの開発環境として Emacs を使っている人には、同じその環境の中でウェブを閲覧できることは本当に便利でしょう。例えば HTML ファイルを執筆しているのであれば、外部のウェブブラウザを起動する必要なく、Emasc の中で作成した HTML ファイルをプレビューできます。プログラミング・マラソンの最中に、迅速に技術文献からサンプルコードを切り貼りするといったことだって...

逆はどうでしょう。(すなわちウェブ閲覧の環境で、そのソースである HTML ファイルを編集したり、参照したりできたら) かっこいいと思いませんか？ ドキュメントを執筆中に emacs-w3m で下見 (preview) して誤字を発見したと想像してみて下さい。その HTML ファイルをたちどころに修正したくなるはずです。あなたがウェブテクノロジーに携わるプログラマなら、閲覧中のウェブページを HTML 形式で閲覧したくなることがあるでしょう、特に、新聞モジュールの作者の方 (see Shimbun Basics)。

HTML ファイルを開いている Emacs のバッファの名前を明示的に指定してバッファを切り替えることも普通にできますが、emacs-w3m ではそういった目的のために専用のキーが割当てられています。Emacs-w3m は自分が現在表示しているウェブページの URL を知ってるんです。その情報を使わない手はありません。

\
     表示中のウェブページを HTML 形式でそのまま表示します (w3m-view-source)。

=
     表示中のウェブページの情報を表示します。情報には、タイトル、URL、ドキュメントタイプ、最終変更日時が含まれます (w3m-view-header)。

E
     現在閲覧中のローカルファイルを編集します (w3m-edit-current-url)。

e
     現在ポイントの下にあるリンク先のローカルファイルを編集します (w3m-edit-this-url)。

M
     (Emacs-w3m 以外の) 外部ブラウザを新たに起動して、現在 emacs-w3m で閲覧しているページを表示します (w3m-view-url-with-external-browser)。どの外部ブラウザを使うかは、変数 w3m-content-type-alist によって URL の種類毎に定義されます。

ここで紹介した以外にも、他のコマンドや Emacs のサブシステムと emacs-w3m を連携させる方法を see Tips にて紹介しているので、参考にして下さい。

たくさんのすぐれもの
**********

使いやすいウェブ検索
==========

Emacs-w3m には検索エンジンを利用するための先進の機能があり、三つのインターフェースを通して利用することができます:

  * 標準の検索インターフェースです。S キーでいずれかの emacs-w3m バッファから起動されます。これは検索エンジンを指定して検索語を入力する、単純な対話型のやり方です。The Search Interface を参照して下さい。

  * クイックサーチ・インターフェースです。これは技巧的に作られた URL に行くことによって検索エンジンを利用するための、より速い (さらに、より複雑な) 方法です。この機能に関する詳細は Quick Searching を参照して下さい。

  * ``I'm feeling lucky'' 機能が有効になっている (w3m-enable-google-feeling-lucky) と、URL を入力するときに通常の URL の代わりに何かの語句を指定することによって、その語句の Google 検索を自動的に開始して、最も関係がありそうな結果を表示させることができます。これは最も関係がありそうなページをすぐに見たい場合に便利ですが、検索結果のリストは表示されません。

Emacs-w3m による検索のやり方
-------------------

Emacs-w3m のバッファで S キーを使うことにより (デフォルトのキーマップを使うものとします)、標準の検索インターフェースを立ち上げることができます。すると、ミニバッファで検索語の入力を求めるプロンプトが現れるので、一つまたは複数の語を入れて、RET を叩いて下さい。そのエンジンの検索結果のページが現れ、その後、あたかも検索エンジンに通常のウェブの流儀による入力を行なったときのように、結果を閲覧することができます。

おそらく、あなたはどのエンジンで探索したいかを決める機会が与えられていないことに気付くでしょう。Emacs-w3m はデフォルトで Google 検索エンジンを使いますが、変数 w3m-search-default-engine (Customizable Variables 参照) をカスタマイズすることによって、この振る舞いを変更することができます。あるいは、このコマンドを使うたびに検索エンジンを指定することができます。

どのエンジンを使用するかを明示するためには、コマンドに接頭引数を与えなければなりません (これは C-u S のように、コマンドの前に通常 C-u を叩くことを意味します)。すると emacs-w3m はエンジンの入力を促すので、その名前を一つ選ぶことができます (TAB キーで補完ができます)。いったん選択したら RET キーを叩いて下さい。その後で検索語を入力することができ、RET をタイプすれば検索結果が現れるでしょう。

S
     新しい検索を始めます。接頭引数付きで呼ばれた場合は、どのエンジンを使うかを尋ねます (w3m-search)。

もう一つの (そして速い) ウェブ検索
-------------------

ウェブ・パワーユーザ (これを読んでいるあなた) には、迅速で効率的な検索の方法が必要です。クイックサーチはその一つです。

それは何をするのかって?  それは gg:emacs のような特別の URL に行くだけで、ウェブ検索を始めさせるのです。このモードの動作の長所は、次の通りです:

  * 速い。エンジンと検索語を選ぶのに、一つの URL をタイプするだけです。

  * 便利。この機能によって、容易に emacs-w3m のタブかウィンドゥを開いて、検索を始めることができます。例えば、G キーで新しいウィンドウを開いてクイックサーチ URL に行くように。そして、特別のクイックサーチ URL そのものにも、ブックマークを付けることができます。

  * グルーピング機能も使える。例えば group:gg:emacs&ya:w3m のような URL によって、同時に二つの検索を始めることができます。例えばこの場合は、Google で ``emacs'' の、Yahoo! で ``w3m'' の検索をそれぞれ始めます。 See Grouping URLs.

これを使うのはとても簡単です。``gnu'' という単語を Google で探して結果のリストを得たいのであれば、g を叩いてから ``gg:gnu'' という URL をタイプして下さい。この表現の第一の部分 "gg" は、Google 検索エンジンを使用したいことを示します。第二の部分は検索語です。エンジンと検索語は、コロンで分けなければなりません。そして RET を叩けば検索結果を見ることができます。スペースで分離した複数の語を入力できることを、心に留めておいて下さい。``Feeling Lucky'' 機能が有効になっていれば、ミニバッファで SPC は self-insert キーになっています (これがデフォルトです。 w3m-enable-google-feeling-lucky を参照して下さい。) 無効にしてある場合は、最初に C-q を叩いて下さい。つまり C-q SPC です。

Emacs-w3m のデフォルトでは、利用可能ないくつかの検索エンジンの短縮形があり、それらは変数 w3m-uri-replace-alist で定義されています。例えば Google には ``gg''、Google Groups 用には ``ggg''、Yahoo! のための ``ya''、および Altavista に対する ``al'' などの短い名前です。さらに検索エンジンの短縮形を追加するには Adding New Search Engines を参照して下さい。

短縮形の代わりに、``google'' や ``yahoo'' のような完全なエンジンの名前を、クイックサーチ URL に使うこともできます。それらの名前は、変数 w3m-search-engine-alist で定義されます。

お気に入りのエンジンを使うには?
----------------

Emacs-w3m は利用可能な多くの検索エンジンを持っています。あなたのお気に入りの検索エンジンを使いたいのに、万が一にもそれが既知の検索エンジンのリストに載っていなかったらどうしましょう?  それを検索エンジンのリストに加えれば良いのです。そしてそれは極めて簡単です:

 1. 最初に、あなたが加えたい検索エンジンのエントリー・ポイントが何かを知らなければなりません。例えば:

     http://my.searchengine.com/?query=foobar

     ここで foobar はあなたが検索したい語です。

 2. この情報が手に入ったら、~/.emacs-w3m ファイルに加えて下さい:

          (eval-after-load "w3m-search"
            '(add-to-list 'w3m-search-engine-alist
                          '("My engine"
                            "http://my.searchengine.com/?query=%s"
                            nil)))

     第一フィールドの "My engine" をあなたのエンジンの説明で、第二フィールドをエントリー・ポイントで置き換えて下さい (%s は重要です。これは検索を行なうときに、検索語で置き換えられます)。そして第三フィールドは使用するエンコーディングを意味し、nil またはそれが省略された場合は変数 w3m-default-coding-system の値が標準のエンコーディングとして使われます。

     英語の検索エンジンでは滅多に気にする必要が無いことなのですが、いくつかの日本の検索エンジンでは、それに何か (例えば euc-japan) を指定する必要があるかもしれません。

 3. 今やこの検索エンジンは、emacs-w3m で通常の S キーで使うことができます。このエンジンを頻繁に使うのならば、短いエンジンの名前をクイックサーチエンジン (Quick Searching を参照) に加えることもできます。それには、以下のコードを ~/.emacs-w3m ファイルに追加して下さい:

          (eval-after-load "w3m-search"
            '(progn
               (add-to-list 'w3m-search-engine-alist
                            '("My engine"
                              "http://my.searchengine.com/?query=%s"
                              nil))
               (add-to-list 'w3m-uri-replace-alist
                            '("\\`my:" w3m-search-uri-replace "My engine"))))

     これにより、my:foobar のような URL を使って、あなたの検索エンジンで ``foobar'' という語を検索することができます。

一つの URL で複数のウェブページを見る
=====================

Emacs-w3m は ``group URLs'' という、複数の実際の URL を一つにまとめた特別な URL を扱うことができます。そのようなグループ URL を開くと、 emacs-w3m は一度に複数のページを開くために、そのグループに含まれるそれぞれの URL に対して一つのバッファを開きます。

グループ URL を作るには、開きたいすべてのページのアドレスを単にアンパサンド記号 (``&'') で一緒にして (すなわち結合して)、グループ URL を表す接頭辞の ``group:'' を付ければ良いのです。例を挙げると、GNU プロジェクトのホームページ http://www.gnu.org/ と Savannah ホームページ http://savannah.nongnu.org/ を見たいものとすれば、グループ URL は次のようなものになるでしょう。

group:http://www.gnu.org/&http://savannah.nongnu.org/

この構文を日常的に使うのはかなり辛いものがありますが、非常に短い URL (例えばクイックサーチ URL、Quick Searching を参照) や非対話型で使う状況では、この機能はおおいに役立つでしょう。

明日の天気は晴れでしょう
============

アンテナを張り巡らそう
===========

アンテナはウェブページの変化を追跡するための道具です。アンテナを使うと、特定のページが、以前に見たときから更新されたかされなかったかを、周期的にチェックすることができます。

いずれかの emacs-w3m バッファで A を使うことによって、アンテナを始めることができます。あるいは、特別の URL about://antenna/ に行くことによっても同じことができます。

ウェブサイトをアンテナに加えるには?
------------------

現に表示中のウェブページをアンテナに加えるには、単純に + キーを押してください。全てのフィールドがすでに書きこまれている w3m-antenna-sites をカスタマイズするためのバッファが現れるでしょう。あなたは単に ``Save for future sessions'' と ``Finish'' のボタンを押せば良いのです。

+
     URL をアンテナ・データベースに加えます。接頭引数付きで呼ばれた場合は、現在のページを追加するのではなくて、加える URL を尋ねます (w3m-antenna-add-current-url)。

アンテナで変化を追跡する
------------

アンテナ・ページには二つの項目が現れます。一つは ``Updated'' と呼ばれ、もう一つは ``Visited'' と呼ばれます。``Updated'' の項目では最後にアンテナを更新した後で変化したウェブサイトが、そして ``Visited'' の項目では変化しなかったウェブサイトが見つかります。それぞれの項目で、各行はアンテナ・データベースの一つのウェブサイトを表し、以下の構造になっています:

  * 2002/12/15 16:43  (T)  My website

最初の部分は、アンテナが最後にそのページの変化を報告した、そのウェブサイトが更新された最終時刻です。またはその情報が得られないこともあります。

(T) は ``Time'' を表し、最後にアンテナを更新した後で、そのページの変更時刻が変化したので、変化が検出されたことを意味します。もう一つの可能性がある値は S (``Size'' のこと) で、そのページのサイズが変化したので、変化が検出されたことを意味します。

行の最後の部分は、データベースに追加したときに与えた、このウェブサイトのタイトルです。

どうか、アンテナ・データベースは自動的に更新されないことに注意して下さい。アンテナ・ページで R を叩くか、または接頭引数をコマンドに渡す (例えば C-u A でアンテナを始める) ことによって、サイトが変化したかどうかをチェックしたい毎に、それを更新しなければなりません。

もし、自動で更新させたいなら、変数 w3m-antenna-refresh-interval に更新間隔を秒で設定してください。

A
     アンテナのページに行きます。接頭引数付きで呼ばれた場合は、表示する前にアンテナ・データベースを更新します (w3m-antenna)。

ディレクトリの木構造を表示する
===============

w3m-dtree コマンドを使うと、ローカルディレクトリのすべてのサブディレクトリの木構造を表示して、普通のウェブページのように閲覧することができます。この機能を使ったときに現れる emacs-w3m のバッファは、その名前ゆえに外部の ``tree'' プログラムの出力に非常に類似したものになります。さらに emacs-w3m からのボーナス: このコマンドを接頭引数付きで呼ぶとファイルも表示し、emacs-w3m は完全装備のファイル閲覧器に変身します。

Emacs-w3m dtree がどんなふうに動作するかの例です:

     /home/romain/.elisp/emacs-w3m/
      |-CVS/
      |-attic/
      |  +-CVS/
      |-autom4te.cache/
      |-doc/
      |  |-CVS/
      |  +-emacs-w3m/
      |-icons/
      |  +-CVS/
      |-patches/
      |  +-CVS/
      +-shimbun/
         +-CVS/

接頭引数を付けると、代わりにこんなふうになります:

     /home/romain/.elisp/emacs-w3m/ (allfiles)
      |-(f).cvsignore
      |-(f)BUGS.ja
      |-(f)COPYING
      |-[d]CVS/
      |  |-(f)Entries
      |  |-(f)Repository
      |  +-(f)Root
      |-(f)ChangeLog
      |-(f)ChangeLog.1
      |-(f)Makefile
      |-(f)Makefile.in
      |-(f)README
      |-(f)README.ja

D
     ミニバッファでローカルディレクトリの入力を求め、その木構造を表示します。接頭引数付きで呼ばれると (例: C-u D)、そのディレクトリにあるファイルも表示します (w3m-dtree)。

Perl のドキュメントを見る
===============

Namazu でファイルを検索する
=================

emacs-w3m は、全文検索ソフト Namazu を使ってファイルを検索することもできます (w3m-namazu)。この機能を使うためには、Namazu を以下の場所から取得して、インストールしておく必要があります:

http://namazu.org/

Namazu を使うためには、実際に検索を行う前に、検索対象となるファイルに含まれている単語の索引 (インデックス) を作成しておく必要があります。もっとも典型的なコマンドは以下の通りです。

     % mknmz -O <インデックスを置くディレクトリ> <ドキュメントのあるディレクトリ>

w3m-namazu を動かす前に、いくつかの変数を設定しておく必要があります。以下の変数を、使っている環境にあわせて設定して下さい。

w3m-namazu-index-alist
     インデックスの保存されているディレクトリの連想配列を設定します。 w3m-namazu では、インデックスの保存されているディレクトリに対して、ディレクトリ名よりも分かりやすい別名を定義することができます。また、幾つかの別々のインデックスを、あたかも単一のインデックスであるかのように扱うこともできます。そのためには、次のように別名をキーとし、インデックスの保存されているディレクトリ (のリスト) を値とする連想配列を w3m-namazu-index-alist に設定します。

          (setq w3m-namazu-index-alist
                '(("alias1" "Path/to/the/index/directory1")
                  ("alias2" "Path/to/the/index/dir2"
                            "Path/to/the/index/dir3")))

w3m-namazu-default-index
     検索対象とするインデックスを指定します。実際にインデックスが保存されているディレクトリや、w3m-namazu-index-alist を設定するときに使った別名が使えます。値が nil の場合は、M-x w3m-namazu RET と実行するたびに、検索対象とするインデックスを問い合わせます。

これで準備が整いましたから、M-x w3m-namazu RET query RET とすると、文字列 query を検索することができます。デフォルト以外のインデックスを対象として検索を行う場合は、C-u M-x w3m-namazu というように前置引数を指定して実行します。

application/octet-stream データを見る
===============================

(作成中)

以下の設定を ~/.emacs に書いておくと、octet-find-file でファイルを開いたときに便利かも知れません。

     (add-hook 'octet-find-file-hook 'view-mode)
     (add-hook 'octet-find-file-hook 'w3m-minor-mode)

多数のセッションをフレームでグループ分けする
======================

多数の emacs-w3m のセッションをグループ毎に別々のフレームに分割することができます。例えば二つの emacs-w3m のフレームを用意して、一つは検索エンジン群を扱い、もう一方ではニュースサイト群を扱うような使い方です。

Emacs-w3m はたくさんのページを同時に見るためのいくつかの機能を提供します。例えば、たくさんのページをそれぞれ新しいセッションとして立ち上げるためにタブを使ったり (see Using Tabs)、または group: で始まる特別な URL (see Grouping URLs) を使うことができます。しかし、あまりにたくさんのページがある場合は、それらを別々のフレームでグループ分けをしたいと思うかもしれません。そうであれば、w3m-fb-mode コマンドはあなたのためのものです。ただしそれを使うためには w3m-use-tab 変数を非-nil (デフォルトで t) に、w3m-pop-up-frames 変数を nil (それがデフォルト) に設定しておかなければなりません (see General Variables)。

M-x w3m-fb-mode をタイプするとモードがトグルに切り替わりますが、接頭引数としてそのコマンドに正の整数を与えることによって、モードを on にすることができます (ゼロ以下では off になります)。

w3m-fb-mode が on になっていると、現在のフレームで開始したセッションはそのフレームだけに関連付けられます。そして他のフレームで開いた他のセッションは、同様にそれらのフレームだけに現れます。言い換えると、あるフレームに関連付けられたセッションは他のフレームには現れません。 w3m-fb-mode は新しいフレームを作らないので、それらは何らかの方法であなた自身が作る必要があります。

デフォルトのままでも結構良いと思うけれど
********************

たくさんの emacs-w3m の変数が、Custom の仕掛けによってカスタマイズすることができます。Custom は変数を定義するための、Emacs のグラフィック・インターフェースです。Custom にはいくつかのカスタマイズのための手段があり、例えば単一のオプション (すなわち、Emacs Lisp 変数) のための M-x customize-option、またはある ``group'' (この場合のグループは w3m) に属するすべてのオプション (変数とフェース) を見て、かつ変更するための M-x customize-group が使えます。

あるいは (もし Custom を使いたくないのであれば)、任意の Emacs Lisp 式を emacs-w3m 初期設定ファイルに書き込むことができます。デフォルトのファイルは ~/.emacs-w3m です。例えば、

     (setq w3m-home-page "http://emacs-w3m.namazu.org/")

これはデフォルトのホームページを http://emacs-w3m.namazu.org/ に設定します。シンタックスは .emacs ファイルと同じです (see Init File (The Emacs Manual))。

気を付けなければいけないのは、外部モジュールで定義されているいくつかの変数が ~/.emacs-w3m ファイルが読み込まれるときには未定義で、それらを変更できないかもしれないことです (もちろん、デフォルトの値を気にしないのであれば、~/.emacs-w3m ファイルで完璧に上書きしてしまうことは可能なのですけれどね)。変数 w3m-search-engine-alist は典型的な例です (see Search Variables)。

w3m-init-file
     Emacs-w3m が起動すると、w3m-init-file ファイルを読み込みます。デフォルト値は ~/.emacs-w3m です。たぶん、あなたはこれを変更する必要は無いでしょう。これは普通の Emacs Lisp ファイルで、 ~/.emacs や site-init ファイルを emacs-w3m 関係のもので乱雑にしないようにするために使うことができます。Emacs-w3m はこれと同じ名前に、拡張子 .elc と .el が付いているものも (言い換えれば、 ~/.emacs-w3m.elc、~/.emacs-w3m.el および ~/.emacs-w3m の順に) 調べます。

一般的な変数
======

w3m-accept-languages
     List of acceptable languages in descending order of priority.  The default value is set according to the accept_language entry of the w3m configuration file (normally ~/.w3m/config).

w3m-add-referer

     Rule of sending referers.  There are five choices as the valid values of this option.

      1. nil: this means that emacs-w3m never send referers.

      2. t: this means that emacs-w3m always send referers.

      3. lambda: this means that emacs-w3m send referers only when both the current page and the target page are provided by the same server.

      4. a cons cell keeping two regular expressions: this means that emacs-w3m send referers when the url of the current page matches the first regular expression and does not match the second regular expression.  Nil for the regexp matches any url.

      5. a function: emacs-w3m send referers when this function which has two arguments, URL and REFERER, returns non-nil.

     If you're nervous about leaking private WEB browsing history information, set this option to `nil' or `lambda'.  If your computer belongs to a secret network, you may set a pair of regular expressions to inhibit sending referers which will disclose your private information, as follows:

          (setq w3m-add-referer
                '("\\`http:\"
                  . "\\`http://\\([^./]+\\.\\)*example\\.net/"))

w3m-add-user-agent
     Non-nil means add the User-Agent field to the request header. The value of w3m-user-agent is used for the field body.

w3m-arrived-file
     Name of the file to keep the arrived URLs database.

w3m-auto-show
     Non-nil means provide the ability to horizontally scroll the window.  Automatic horizontal scrolling happens when the point gets away from both ends of the window, but nothing occurs if truncate-lines is set to nil.

     This feature works with specific emacs-w3m code; usual auto-hscroll-mode, automatic-hscrolling, auto-show-mode or hscroll-mode will all be invalidated in emacs-w3m buffers.

w3m-charset-coding-system-alist
     Alist of MIME charsets and coding systems.  Both charsets and coding systems must be symbols.

w3m-coding-system
     Default coding system used to communicate with the w3m command.

w3m-coding-system-priority-list
     Coding systems in order of priority used for emacs-w3m sessions.

w3m-command
     Name of the executable file of the w3m command.  You normally don't have to specify the value, since emacs-w3m looks for the existing commands w3m, w3mmee and w3m-m17n (in this order) in the exec-path directories in order if it is nil in the beginning.

     If you want to use the other w3m command, specify the value of this variable explicitly in the .emacs file or customize the value and save it.  In this case, you need to restart Emacs and emacs-w3m: there is currently no way to apply the changing of the w3m command to all the emacs-w3m programs safely after loading the w3m.elc module.

w3m-command-arguments
     List of the default arguments passed to the w3m command.  See also w3m-command-arguments-alist.

w3m-command-arguments-alist
     Alist of regexps matching urls and additional arguments passed to w3m.  A typical usage of this variable is to specify whether to use a proxy server for particular hosts.  The first match made will be used.  Here is an example of how to set this variable:

          (setq w3m-command-arguments-alist
                '(;; Don't use the proxy server to visit local web pages.
                  ("^http://\\([^/]*\\.\\)*your-company\\.com\\(/\\|$\\)"
                   "-no-proxy")
                  ;; Use the proxy server to visit any foreign urls.
                  (""
                   "-o" "http_proxy=http://proxy.your-company.com:8080/")))

     Here the first element matches any url where the scheme is http and the hostname is either your-company.com or a name ending with .your-company.com; the proxy server is not used for those hosts. If you are a regexp novice, you can use the w3m-no-proxy-domains variable instead.

w3m-command-environment
     Alist of environment variables for subprocesses to inherit.

w3m-content-type-alist
     Alist of file suffixes and content types.

w3m-correct-charset-alist
     Alist of MIME charsets; strange ones and standard ones.

w3m-db-history-display-size
     Maximum number of arrived URLs which are displayed per page.

w3m-decoder-alist
     Alist of encoding types, decoder commands, and arguments.

w3m-default-coding-system
     Default coding system used to encode url strings and post-data.

w3m-default-content-type
     Default value assumed as the content type of local files.

w3m-default-directory
     Directory used as the current directory in emacs-w3m buffers.  The valid values include a string specifying an existing directory, a symbol of which the value specifies an existing directory, a function which takes a url as an argument and returns a directory, and nil (which is the default).  If the specified directory does not exist or it is nil, the value of w3m-profile-directory is used.

     Note that there is an exception: if a page visits a local file or visits a remote file using ftp, the directory in which the file exists is used as the current directory instead.

w3m-default-save-directory
     Default directory where downloaded files will be saved to.

w3m-delete-duplicated-empty-lines
     Non-nil means display two or more continuous empty lines into single.

w3m-dirlist-cgi-program
     Name of the CGI program to list a local directory.  If it is nil, the dirlist.cgi module of the w3m command will be used.

w3m-edit-function
     Function used for editing local files.  It is used when the w3m-edit-current-url command or the w3m-edit-this-url command is invoked.

w3m-edit-function-alist
     Alist of functions used for editing pages.  This option is referred to decide which function should be used to edit a specified page, when either w3m-edit-current-url or w3m-edit-this-url is invoked.  When no suitable function is found from this alist, w3m-edit-function is used.

w3m-enable-google-feeling-lucky
     Non-nil enables you to enter any words as well as a url when prompted.  In that case, emacs-w3m uses Google to search for the words. The default value is t.

w3m-encoding-type-alist
     Alist of file suffixes and content encoding types.

w3m-file-coding-system
     Coding system used when writing configuration files.  This value will be referred to by the w3m-save-list function.

w3m-file-name-coding-system
     Coding system used to convert pathnames when emacs-w3m accesses files.

w3m-fill-column
     Integer used as the value for fill-column in emacs-w3m buffers. If it is positive, pages will be displayed within the columns of that number.  If it is zero or negative, the number of columns which subtracted that number from the window width is applied to the maximum width of pages.  Note that XEmacs does not always obey this setting.

w3m-follow-redirection
     Maximum number of redirections which emacs-w3m honors and follows.  If nil, redirections are followed by the w3m command.  Don't set it to nil if you allow to use cookies (i.e., you have set w3m-use-cookies to non-nil) since cookies may be shared among many redirected pages.

w3m-home-page
     This variable specifies the url string to open when emacs-w3m starts. Don't say HP, it's the abbreviated name of a certain company. ;-)

w3m-horizontal-scroll-columns
     Number of steps in columns used when scrolling a window horizontally.

w3m-horizontal-scroll-division
     Integer used by the program making the point certainly visible.  The cursor definitely does not go missing even when it has been driven out of the window while wandering around anchors and forms in an emacs-w3m buffer.

     Suppose that the value of this variable is N.  When the point is outside the left of the window, emacs-w3m scrolls the window so that the point may be displayed on the position within 1/N of the width of the window from the left.  Similarly, when the point is outside the right of the window, emacs-w3m scrolls the window so that the point may be displayed on the position of 1/N of the width of the window from the right.

     This feature doesn't work if w3m-auto-show is nil.  The value must be a larger integer than 1.

w3m-horizontal-shift-columns
     Number of steps in columns used when shifting a window horizontally. The term shifting means a fine level scrolling.

w3m-imitate-widget-button
     If non-nil, imitate the widget buttons on link (anchor) buttons. It is useful for moving about in a Gnus article buffer using TAB key.  It can also be any Lisp form that should return a boolean value.

w3m-init-file
     Your emacs-w3m startup file name.  If a file with the .el or .elc suffixes exists, it will be read instead.

     Note: This file is used as the startup configuration NOT for the w3m command but for emacs-w3m.  In order to modify configurations for the w3m command, edit the file named ~/.w3m/config normally.

w3m-input-coding-system
     Coding system used when writing to w3m processes.  It overrides coding-system-for-write if it is not binary.  Otherwise, the value of the w3m-current-coding-system variable is used instead.

w3m-keep-arrived-urls
     Maximum number of URLs which the arrived URLs database keeps.

w3m-keep-cache-size
     Maximum number of pages to be cached in emacs-w3m.

w3m-key-binding
     Type of key binding set used in emacs-w3m sessions.  The valid values include info which provides Info-like keys, and nil which provides Lynx-like keys.

w3m-language
     Your preferred language used in emacs-w3m sessions.

w3m-local-directory-view-method
     Symbol of the method to view a local directory tree.  The valid values include w3m-cgi using the CGI program specified by the w3m-dirlist-cgi-program variable (which see), and w3m-dtree using the w3m-dtree Lisp module.

w3m-local-find-file-function
     Function used to open local files.  If a url of the file: scheme in which you entered agrees with the rule of the w3m-local-find-file-regexps variable (which see), it is used to open the file.

     Function should take one argument, the string naming the local file.  It can also be any Lisp form returning a function.  Set this to nil if you want to always use emacs-w3m to see local files.

w3m-local-find-file-regexps
     Cons of two regexps matching and not matching with local file names.  If a url of the file: scheme in which you entered matches the first form and does not match the latter form, it will be opened by the function specified by the w3m-local-find-file-function variable.  Nil for the regexp matches any file names.

     For instance, the value (nil . "\\.html?\\'") allows file:///some/where/w3m.el, not file:///any/where/index.html, to open by the function specified by w3m-local-find-file-function.  The latter will be opened as a normal web page.

     It is effective only when the w3m-local-find-file-function variable is set properly.

w3m-mailto-url-function
     Function used to handle the mailto urls.  Function is called with one argument, just a url.  If it is nil, a function specified by the mail-user-agent variable will be used for composing mail messages.

w3m-mailto-url-popup-function-alist
     Alist of (MAJOR-MODE . FUNCTION) pairs used to pop a mail buffer up.  If a user clicks on a mailto url and a mail buffer is composed by mail-user-agent with the MAJOR-MODE, FUNCTION will be called with a mail buffer as an argument.  Note that the variables special-display-buffer-names, special-display-regexps, same-window-buffer-names and same-window-regexps will be bound to nil while popping to a buffer up.

w3m-make-new-session
     Non-nil means making new emacs-w3m buffers when visiting new pages.  If it is non-nil and there are already emacs-w3m buffers, the w3m command makes a new emacs-w3m buffer if a user specifies a url string in the minibuffer, and the w3m-safe-view-this-url command also makes a new buffer if a user invokes it in a buffer not being running the w3m-mode.  The default value is nil.

w3m-mbconv-command
     Name of the mbconv command provided by the libmoe package. The libmoe package is used when you use the w3mmee command instead of the w3m command.  See also w3m-command.

w3m-no-proxy-domains
     List of domain names for which emacs-w3m will not use a proxy server. Each element should be exactly a domain name which means the latter common part of the host names, not a regexp.

w3m-output-coding-system
     Coding system used when reading from w3m processes.

w3m-pop-up-frames
     Non-nil means pop to a new frame up for an emacs-w3m session. This variable is similar to pop-up-frames and does override w3m-pop-up-windows.  If w3m-use-tab is non-nil or there is the buffers selection window (for the w3m-select-buffer feature), this variable is ignored when creating the second or more emacs-w3m session.

w3m-pop-up-windows
     Non-nil means split the windows when a new emacs-w3m session is created.  This variable is similar to pop-up-windows and quite overridden by w3m-pop-up-frames as if pop-up-frames influences.  Furthermore, if w3m-use-tab is non-nil or there is the buffers selection window (for the w3m-select-buffer feature), this variable is ignored when creating the second or more emacs-w3m session.

w3m-popup-frame-parameters
     Alist of frame parameters used when creating a new emacs-w3m frame.  It allows not only the alist form but also XEmacs' plist form.

w3m-prefer-cache
     Non-nil means that cached contents are used without checking headers.

w3m-profile-directory
     Directory where emacs-w3m config files are loaded from or saved to.

w3m-quick-start
     Non-nil means let emacs-w3m start quickly w/o requiring confirmation.  When you invoke the w3m command, it attempts to visit the page of a string like url around the cursor or the value of w3m-home-page.  You won't be asked for the confirmation then if this value is non-nil.  Otherwise, you will be prompted for that url with the editing form.

w3m-redirect-with-get
     If non-nil, use the GET method after redirection.  It controls how emacs-w3m works when a server responds the code 301 or 302.  Here is an extract from RFC2616:

     Note: RFC 1945 and RFC 2068 specify that the client is not allowed to change the method on the redirected request.  However, most existing user agent implementations treat 302 as if it were a 303 response, performing a GET on the Location field-value regardless of the original request method.

w3m-relationship-estimate-rules
     Rules to estimate relationships between a retrieved page and others.

w3m-select-buffer-horizontal-window
     Non-nil means split windows horizontally to open the selection window.

w3m-select-buffer-window-ratio
     The percentage of the selection window to the whole frame.  The car is used when splitting windows horizontally and the cdr is for splitting windows vertically.

w3m-show-decoded-url
     Non-nil means show decoded URIs in the echo area, the balloon, etc.  This variable can take one of the following five kinds of forms:

      1. t

          Decode URIs using the encoding guessed from the value of w3m-coding-system-priority-list.

      2. Coding system

          Decode URIs using this value.

      3. List of coding systems

          Decode URIs using the encoding assumed based on this list.

      4. Alist of predicates and forms described below:

          Each element looks like the (PREDICATE . ENCODING) form. PREDICATE should be a regexp, a function or a Lisp form, and ENCODING should be one of the forms described here excluding this form.  If PREDICATE is a regexp, it will be tested whether it matches to the target url.  If it is a function, it will be called with the target url.  If it is a Lisp form, it will be simply evaluated. Elements are tested in turn until the result of the test of the predicate is true and the encoding which is associated to the predicate is used for decoding URIs.

      5. nil

          Don't decode URIs.

w3m-show-error-information
     Non-nil means show an error information as a web page.  Page is made when the foreign server doesn't respond to a request to retrieve data.

w3m-space-before-favicon
     String of space char(s) to be put in front of favicon in the mode-line. It may be better to use two or more spaces if you are using oblique or italic font in the modeline.

w3m-space-before-modeline-icon
     String of space character(s) to be put in front of the modeline icon. It may be better to use one or more spaces if you are using oblique or italic font in the modeline.

w3m-terminal-coding-system
     Default coding system used when writing to w3m processes.  It is just a default value to set process' coding system initially.  (This variable name is analogically derived from the behavior of the w3m command which accepts data from Emacs just like reads from the terminal.)

w3m-touch-command
     Name of the executable file of the touch command.  Note that the command is required to be able to modify file's timestamp with the -t option.

w3m-track-mouse
     Whether to track the mouse and message the url under the mouse.  This feature does not work under Emacs or XEmacs versions prior to 21.  See also show-help-function if you are using Emacs 21 or later.

     A tip for XEmacs users:

     You can also use the balloon-help feature by the M-x balloon-help-mode command with arg 1.  If the window manager decorates the balloon-help frame, and that is not to your taste, you may strip it off with the following directives:

          For ol[v]wm use this in .Xdefaults:
             olvwm.NoDecor: balloon-help
               or
             olwm.MinimalDecor: balloon-help

          For fvwm version 1 use this in your .fvwmrc:
             NoTitle balloon-help
          or
             Style "balloon-help" NoTitle, NoHandles, BorderWidth 0

          For twm use this in your .twmrc:
             NoTitle { "balloon-help" }

     See the balloon-help.el file for more information.

w3m-uri-replace-alist
     Alist of regexps matching URIs, and some types of replacements.  It can be used universally to replace URI strings in the local rule to the valid forms in the Internet.

     Each element looks like the (REGEXP FUNCTION OPTIONS...) form. FUNCTION takes one or more arguments, a uri and OPTIONS. You can use the grouping constructs \\(...\\) in REGEXP, and they can be referred by the \N forms in a replacement (which is one of OPTIONS).

     Here are some predefined functions which can be used for those ways:

     w3m-pattern-uri-replace
          Replace a URI using PATTERN (which is just an OPTION). It is allowed that PATTERN contains the \N forms in the same manner of replace-match.

     w3m-search-uri-replace
          Generate valid URLs to query words on some specified search engines. For example, the element

               ("\\`gg:" w3m-search-uri-replace "google")

          makes it possible to replace the URI gg:emacs to a query for the word emacs on the Google search engine.

w3m-url-local-directory-alist
     Alist of URLs and local directories.  If directory names of a given URL and the car of an element are the same, emacs-w3m assumes that the file exists in the local directory where the cdr of an element points to.  The default value will be set to a value of the yahtml-path-url-alist variable which exchanged the car and the cdr in each element if it is available.

w3m-use-ange-ftp
     Non-nil means that ange-ftp or efs is used to access FTP servers.

w3m-use-cygdrive
     If non-nil, use the /cygdrive/ rule when performing expand-file-name.

w3m-use-filter
     Non-nil means use filter programs to convert web contents.  See also w3m-filter-rules (the w3m-filter.elc module provides it but might have never been loaded.  In that case, to see the default value and the documentation of w3m-filter-rules, type M-x load-library RET w3m-filter RET).

w3m-use-form
     Non-nil means make it possible to use form extensions. (EXPERIMENTAL)

w3m-use-header-line
     Non-nil means display the header line.

w3m-use-mule-ucs
     Non-nil means use the multi-script support with Mule-UCS.

w3m-use-refresh
     Non-nil means honor the REFRESH attribute in META tags. Emacs-w3m arbitrarily takes you to a url specified by that attribute. Note that they may be malicious traps.

w3m-use-symbol
     Non-nil means replace symbols that the <_SYMBOL> tags lead into.  It is meaningful only when the w3m-m17n command is used and (X)Emacs handles unicode charsets.

w3m-use-tab
     Non-nil means make emacs-w3m a tab browser.  It makes it possible to show all emacs-w3m buffers in a single window with the tabs line, and you can choose one by clicking a mouse on it.  See also w3m-use-tab-menubar.

w3m-use-tab-menubar
     Non-nil means use the TAB pull-down menu in the menubar.  It makes it possible to show all emacs-w3m buffers in a single window, and you can choose one by clicking a mouse on it.  This feature requires that Emacs has been built to be able to display multilingual text in the menubar if you often visit web sites written in non-ascii text.  See also w3m-use-tab.

w3m-use-toolbar
     Non-nil activates toolbar of w3m.

w3m-user-agent
     String used for the User-Agent field.  See also w3m-add-user-agent.

w3m-view-this-url-new-session-in-background
     Run w3m-view-this-url without switching to the newly created buffer.  It is useful if you enabled the tabs line or the buffers selection window for the w3m-select-buffer feature.  Note that it is meaningful only when specifying a prefix argument to the w3m-view-this-url command or using the w3m-view-this-url-new-session command in order to create a new emacs-w3m session.

画像に関連した変数
=========

w3m-default-display-inline-images
     Non-nil means display images inline in emacs-w3m buffers.  You can toggle the visibility of images with the w3m-toggle-inline-images command.  See also w3m-toggle-inline-images-permanently.

w3m-favicon-cache-expire-wait
     The cache will be expired after specified seconds passed since retrieval.  If this variable is nil, never expired.

w3m-favicon-cache-file
     Filename of saving favicon cache.  It defaults to the file named .favicon under the directory specified by the w3m-profile-directory variable.

w3m-favicon-size
     Size of favicon. This value is used as geometry argument for convert.

w3m-favicon-type
     Image type of display favicon.

w3m-favicon-use-cache-file
     If non-nil, use favicon cache file.

w3m-icon-directory
     Directory where emacs-w3m should find icon files.

w3m-imagick-convert-program
     Program name of ImageMagick's convert.

w3m-treat-image-size
     Non-nil means let the w3m command mind the ratio of the size of images and text.  The default value is t.

     If it is non-nil, the w3m command will make a halfdump which reserves rectangle spaces in which images will be put, and also alt texts will be truncated or padded with spaces so that their display width will be the same as the width of images.

     See also w3m-pixels-per-character and w3m-pixels-per-line. Those values will be passed to the w3m command in order to compute columns and lines which images occupy.

w3m-pixels-per-character
     Integer used for the -ppc argument of the w3m command.  If nil, the width of the default face is used.  It is valid only when w3m-treat-image-size is non-nil.  The default value is nil.  If you want to use emacs-w3m in a character terminal and make w3m-treat-image-size effective, you need to set this variable properly.

w3m-pixels-per-line
     Integer used for the -ppl argument of the w3m command.  If nil, the height of the default face is used.  It is valid only when w3m-treat-image-size is non-nil.  Note that a small value may not induce a good result.  The default value is 64.  If you want to use emacs-w3m in a character terminal and make w3m-treat-image-size effective, you need to set this variable properly.

w3m-resize-image-scale
     Number of steps in percent used when resizing images.

w3m-resize-images
     If non-nil, resize images to the specified width and height.

w3m-show-graphic-icons-in-header-line
     Non-nil means show graphic status indicators in the header-line. If it is nil, also the favicon won't be shown in the header-line even if w3m-use-favicon is non-nil.  This variable is currently meaningless under XEmacs.

w3m-show-graphic-icons-in-mode-line
     Non-nil means show graphic status indicators in the mode-line. If it is nil, also the favicon won't be shown in the mode-line even if w3m-use-favicon is non-nil.

w3m-toggle-inline-images-permanently
     Non-nil means let the visibility of images continue permanently. The visibility of images is initialized according to w3m-default-display-inline-images at the first time, and except that it may be toggled by the w3m-toggle-inline-images command, it does not change hereafter, if it is non-nil.  Otherwise, whether images are visible is initialized according to w3m-default-display-inline-images whenever you visit a new page or reload the current page in an emacs-w3m buffer.

w3m-use-favicon
     Non-nil means show favicon images if they are available.  It will be set to nil automatically if ImageMagick's convert program does not support the ico format.

フォームに関連した変数
===========

w3m-form-input-map-buffer-lines
     Buffer lines for form select map buffer.

w3m-form-input-select-buffer-lines
     Buffer lines for form select buffer.

w3m-form-input-textarea-buffer-lines
     Buffer lines for form textarea buffer.

w3m-form-mouse-face
     Mouse face to highlight selected value.

w3m-form-treat-textarea-size
     Non-nil means to process textarea size (treat textarea rows).

w3m-form-use-fancy-faces
     Use fancy faces to fontify <form> tags.

w3m-form-use-textarea-backup
     Non-nil means save and restore backup text saved when you last edited this textarea.  Files to save text are stored in the directory specified by the w3m-form-textarea-directory variable.

クッキーに関連した変数
===========

w3m-cookie-accept-bad-cookies
     If nil, don't accept bad cookies.  If t, accept bad cookies.  If ask, ask user whether accept bad cookies or not.

w3m-cookie-accept-domains
     A list of trusted domain name string.

w3m-cookie-file
     File in which cookies are kept.

w3m-cookie-reject-domains
     A list of untrusted domain name string.

w3m-use-cookies
     Non-nil means enable emacs-w3m to use cookies. (EXPERIMENTAL)

ブックマークに関連した変数
=============

w3m-bookmark-file
     Bookmark file of w3m.

w3m-bookmark-file-coding-system
     Coding system for a created bookmark file. This option is used when a new bookmark file is created, or when an existing bookmark file includes ASCII characters only.  If the coding system which is used to encode your using bookmark file is different from the value of this option, emacs-w3m does not change the encoding of your bookmark file.

w3m-bookmark-default-section
     Default section to add new entry.

w3m-bookmark-menu-open-new-session
     If non-nil, ``Bookmark'' menu item open new session.

ウェブ検索に関連した変数
============

天気予報に関連した変数
===========

dtree に関連した変数
=============

アンテナに関連した変数
===========

Perldoc に関連した変数
===============

Namazu に関連した変数
==============

Octet に関連した変数
=============

フック
===

w3m-after-cursor-move-hook
     Hook run each time after the cursor moves in emacs-w3m buffers.  This hook is called by the w3m-check-current-position function by way of post-command-hook.

w3m-delete-buffer-hook
     Hook run when every emacs-w3m buffer is deleted.

w3m-display-hook
     Hook run after displaying pages in emacs-w3m buffers.  Each function is called with a url string as the argument.  This hook is evaluated by the w3m-goto-url function.

w3m-fontify-after-hook
     Hook run after fontifying emacs-w3m buffers.  This hook is evaluated by the w3m-fontify function.

w3m-fontify-before-hook
     Hook run when starting to fontify emacs-w3m buffers.  This hook is evaluated by the w3m-fontify function.

w3m-form-input-map-mode-hook
     A hook called after w3m-form-input-map-mode.

w3m-form-input-map-set-hook
     A Hook called before w3m-form-input-map-set.

w3m-form-input-select-mode-hook
     A hook called after w3m-form-input-select-mode.

w3m-form-input-select-set-hook
     A Hook called before w3m-form-input-select-set.

w3m-form-input-textarea-mode-hook
     A hook called after w3m-form-input-textarea-mode.

w3m-form-input-textarea-set-hook
     A Hook called before w3m-form-input-textarea-set.

w3m-minor-mode-hook
     Hook run after w3m-minor-mode initialization.

w3m-mode-hook
     Hook run after w3m-mode initialization.  This hook is evaluated by the w3m-mode function.

w3m-select-buffer-hook
     Hook run when a different emacs-w3m buffer is selected.

w3m-bookmark-mode-hook
     Hook run at the end of function `w3m-bookmark-mode'.

その他の変数
======

w3m-async-exec
     Non-nil means execute the w3m command asynchronously in Emacs process.

w3m-broken-proxy-cache
     Set it to t if the proxy server seems not to work properly in caching.  Note that this may be the double-edged sword; setting it to t will likely be harmful if the proxy server sends bad requests (e.g., not including the Host header, see RFC2616 section 14.23) to foreign servers when the w3m command specifies the no-cache directive.  Also note that it may not be effective if you are using old w3m command.

w3m-history-minimize-in-new-session
     Non-nil means minimize copied history so that there's only current page.  This variable is effective when creating of the new session by copying (i.e., w3m-copy-buffer).  The default value is nil.

w3m-history-reuse-history-elements
     Non-nil means reuse the history element when re-visiting the page.  Otherwise, a new history element will be created even if there are elements for the same url in the history.

     Emacs-w3m used to operate as the case in which it is non-nil, however it sometimes brought about users' dissatisfaction.  For example, if a user visited the pages A -> B -> C -> B in order, performing BACK on the second B would let a user visit A.  The reason why a user was taken to A rather than C is that the w3m-history variable only had the list (A B C) as a history and B was the current position at that time.

     The default value for this variable is nil which allows the w3m-history variable to have the list (A B C B).  Where contents of two B's are the identical Lisp objects.  So, too much wasting the Lisp resources will be avoided.

     See the documentation for the variables w3m-history and w3m-history-flat for more information.

w3m-process-connection-type
     Value for process-connection-type used when communicating with w3m.

w3m-process-modeline-format
     Format used when displaying the progress of the external w3m process.  It shows a percentage of the data loaded from the web server.

w3m-xmas-show-current-title-in-buffer-tab
     If non-nil, show the title strings in the buffers tab.  It has no effect if your XEmacs does not support the gutter items.

メール/ニュースリーダーで使う
***************

ここでは三種類の MUA (Message User Agent) を紹介します。それらの MUA はすべて emacs-w3m を使うことによって HTML メールを適切に表示することができます。それぞれの MUA と emacs-w3m を設定して使うための HowTo といくつかの注意を、ここで見つけることができるでしょう。

異なる習慣に関する即席の注釈: message って何? − Gnus ユーザが message と言うとき、それはしばしばメールまたはニュースとして送信するメッセージの草稿を意味します。しかし、それは Mew や Wanderlust のユーザが、受信したメッセージに対して使う用語です。彼らは送信するメッセージに draft を使っています。一方 Gnus ユーザは、受信したメッセージを article と呼びます。

Gnus で HTML メールを読む
==================

Gnus (Emacs のニューズリーダー) が emacs-w3m をサポートしているって、知っていましたか?

実際には Emacs に同梱されている Gnus は、(今はまだ) emacs-w3m をサポートしていません。最新版の Gnus を使うのが良いでしょう。それは以下の場所で手に入ります:

ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz

ご注意: あなたの Emacs に付属している Gnus のバージョンで emacs-w3m がサポートされているとしたら、この説明書が古い、または非常に古いバージョンの emacs-w3m を使っている、のどちらかを意味します。前者であれば Mailing List を参照して、このバグを知らせて下さい。後者の場合には、もっと新しいバージョンに更新するべきです。

  * Emacs-w3m で何ができるの?

     HTML の spam メールを、emacs-w3m を使って人間が読めるように変換することができます。もちろん HTML の ham メール (spam ではないメール) に対しても働き、どちらの場合でも emacs-w3m はデフォルトの変換器よりもたぶん速いでしょう。追加の操作は必要ありません。それは単に表示されます。

     記事バッファの HTML の部分では w3m-minor-mode が on になって、 emacs-w3m のと同じ主要なキーを使うことができます。例えば RET は、現在位置のリンクが指し示すページに行きます。それらのキーは変数 w3m-minor-mode-command-alist で定義されています。保安上の理由から、いくつかのコマンドはそれに似た別のコマンドで置き換えられていることを心に留めておいて下さい (下記参照)。

  * 何をしなければいけないの?

     Gnus のマニュアルを読んで下さい (see Display Customization (The Emacs MIME Manual))。最も簡単な方法は、以下の行を ~/.gnus.el ファイルに入れることです:

          (setq mm-text-html-renderer 'w3m)

     さらに、記事バッファで画像を表示したい場合は、以下の行を入れて下さい。

          (setq mm-inline-text-html-with-images t)

     記事バッファで emacs-w3m のキーを使う必要が無いならば、以下の行も追加して下さい:

          (setq mm-inline-text-html-with-w3m-keymap nil)

  * ご注意

     前に spam と ham のことを書いたのはふざけているわけではなくて、あなたの注意を喚起するためにまさにここにあるのです。HTML メールには <img> タグを使った spammers (spam をばらまくやから) の卑劣な悪巧みが含まれているかもしれません。それは Click Here! ボタンよりはるかに有害です。最もありそうなのは、そんなたちの悪い spam があなたの目に止まったかどうかを検査する、すなわちこの場合、あなたのメールアドレスが有効であることを確認するための spammer の意図があることです。それは、画像を表示するときに自動的に取得しに行くであろう URL に、識別文字列を埋め込むことによって行なわれます。変数 mm-w3m-safe-url-regexp がデフォルト値から変更されていなければ、Gnus が勝手に spammer のサイトに接続することはありません。

     mm-inline-text-html-with-images を t にすれば、記事バッファにインライン画像を表示することができますよね?  いいえ、断じて違います。あなたはまだ守られているのです。あなたのメールアドレスが到達可能だという事実が漏れることを気にしないのであれば、変数 mm-w3m-safe-url-regexp を nil にして下さい。 mm-w3m-safe-url-regexp のデフォルト値は "\\`cid:" で、これは私たちが cid: URL によってメールに含まれている画像が安全だと考えていることを意味します (すなわち、mm-w3m-safe-url-regexp を変更しなくても、そのような画像は表示することができます)。

  * おまけ

     概略バッファにいるときでも、記事バッファの画像表示をトグルに切り換えることができます。それらの画像が emacs-w3m によって表示される場合だけですけれどね。例です:

          (defun gnus-summary-w3m-safe-toggle-inline-images (&optional arg)
            "Toggle displaying of all images in the article buffer.
          If the prefix arg is given, all images are considered to be safe."
            (interactive "P")
            (with-current-buffer gnus-article-buffer
              (w3m-safe-toggle-inline-images arg)))

          (eval-after-load "gnus-sum"
            '(define-key gnus-summary-mode-map
               "\C-i" 'gnus-summary-w3m-safe-toggle-inline-images))

Nnshimbun も参照して下さい。

Mew で HTML メールを読む
=================

Emacs-w3m を使うことによって、Text/Html を Message モードに表示できるようになります。以下の設定を ~/.mew.el ファイルに加えて下さい:

     (require 'mew-w3m)

これで、あたかも Text/Plain であるかのように、Text/Html を Message モードに表示できるようになります。この際も、C-c C-e の操作は有効です。

このごろ、同じ情報を二つ含んでいるメールを非常によく見かけます。それらは text/plain パートと text/html パートの両方から成る (何ちゅうバンド幅の無駄使いだ) multipart/alternative フォーマットを使っています。Mew はデフォルトでは text/plain パートだけを表示します。あなたは emacs-w3m を使っているのですから、text/html パートの方を優先したくなるかもしれません。それならば、以下の設定を ~/.mew.el ファイルに加えて下さい:

     (setq mew-mime-multipart-alternative-list
           '("Text/Html" "Text/Plain" ".*"))

Mew に関連するいくつかのカスタマイズ可能な変数があります:

mew-use-w3m-minor-mode
     非-nil にすると、text/html パートが表示されているメッセージバッファにおいて w3m-minor-mode が on になり、emacs-w3m のと同じ主要なキーを使うことができます。例えば RET は、現在位置のリンクが指し示すページに行きます。それらのキーは変数 w3m-minor-mode-command-alist で定義されています。保安上の理由から、いくつかのコマンドはそれに似た別のコマンドで置き換えられていることを心に留めておいて下さい。デフォルト値は nil です。

mew-w3m-auto-insert-image
     非-nil にすると、multipart/related なメッセージを読んでいるときに、メッセージバッファで画像をインライン表示させることができます。mew-w3m は、表示するために cid: URL によってメールの本文に含まれている画像だけ (私たちはそれらを安全だと考えています) を許可することに注意して下さい。デフォルト値は nil です。

     ここで、~/.mew.el に

          (define-key mew-summary-mode-map "T" 'mew-w3m-view-inline-image)

     と書くと、''T'' を押すことによって、画像表示の状態をトグルすることができます。また、''C-uT'' と prefix をつけると、メール本文に含まれていない画像も表示します。

mew-w3m-cid-retrieve-hook
     cid: URL を取り出した後で実行されるフックです。デフォルト値は nil です。

Mew Shimbun も参照して下さい。

SEMI MUA で HTML メールを読む
======================

Emacs-w3m と SEMI MUA、例えば Wanderlust や T-gnus などを使うことによって、HTML メールを人間が読めるように表示することができます。それらの MUA は MIME の機能を SEMI (そしてさらに FLIM) に頼っているので、それらを SEMI MUA と総称しています。SEMI は HTML メールの描画にデフォルトで Emacs/W3 を使いますが、容易に emacs-w3m で置き換えることが可能で、それによってあなたの電脳生活はより快適になるでしょう。

単に以下の行を ~/.emacs ファイルに入れれば良いのです:

     (require 'mime-w3m)

mime-w3m モジュールと mime-w3 モジュールは、ご想像の通り機能的にほぼ同じものです (名前も似ているでしょう?)。後者は SEMI パッケージに含まれています。

記事バッファの HTML の部分では w3m-minor-mode が on になって、 emacs-w3m のと同じ主要なキーを使うことができます。例えば RET は、現在位置のリンクが指し示すページに行きます。それらのキーは変数 w3m-minor-mode-command-alist で定義されています。保安上の理由から、いくつかのコマンドはそれに似た別のコマンドで置き換えられていることを心に留めておいて下さい。

mime-w3m モジュールに関連するいくつかのカスタマイズ可能な変数があります:

mime-w3m-display-inline-images
     非-nil だったら、画像が HTML メールにインライン表示されます。最初に default というシンボルだったら (それがデフォルトです)、この変数の値は、変数 w3m-default-display-inline-images の値で置き換えられます。たぶん、あなたはこれを変更する必要は無いでしょう。

mime-w3m-safe-url-regexp
     安全であると考えられる URL にマッチする正規表現です。デフォルト値は "\\`cid:" で、私たちは cid: URL によってメールに含まれた画像が安全だと考えていることを意味します。悪漢による攻撃については Gnus を参照して下さい。

mime-w3m-setup-hook
     mime-w3m モジュールと SEMI の協調動作を設定した直後に実行されるフックです。デフォルト値は nil です。

ところで、summary バッファにいるときでも、article バッファ (Wanderlust のコミュニティでは message バッファと呼ばれている) の画像表示をトグルに切り換えることができます。それらの画像が emacs-w3m によって表示される場合だけですけれどね。T-gnus, Nana-gnus および Wanderlust 用の例です:

     ;; T-gnus or Nana-gnus:
     (defun gnus-summary-w3m-safe-toggle-inline-images (&optional arg)
       "Toggle displaying of all images in the article buffer.
     If the prefix arg is given, all images are considered to be safe."
       (interactive "P")
       (save-excursion
         (set-buffer gnus-article-buffer)
         (w3m-safe-toggle-inline-images arg)))

     (eval-after-load "gnus-sum"
       '(define-key gnus-summary-mode-map
          "\C-i" 'gnus-summary-w3m-safe-toggle-inline-images))

     ;; Wanderlust:
     (defun wl-summary-w3m-safe-toggle-inline-images (&optional arg)
       "Toggle displaying of all images in the message buffer.
     If the prefix arg is given, all images are considered to be safe."
       (interactive "P")
       (save-excursion
         (set-buffer wl-message-buffer)
         (w3m-safe-toggle-inline-images arg)))

     (eval-after-load "wl-summary"
       '(define-key wl-summary-mode-map
          "\M-i" 'wl-summary-w3m-safe-toggle-inline-images))

T-gnus か Nana-gnus をお使いならば Nnshimbun も参照して下さい。

VM (vieW maiL) は Wanderlust にあらず
================================

Emacs-w3m は VM を積極的にサポートしていません。それは単に emacs-w3m チームに VM ユーザがいないからです。しかし悲観しないで。Emacs-w3m の配布の attic ディレクトリに vm-w3m.el モジュールがあります。それが使えればめっけもんです。とにかく試して見て下さい。使い方はそのファイルにあります。

返信メッセージの中に引用した HTML メールをデコードするには、 vm-7.19.patch というパッチ (emacs-w3m の配布の attic ディレクトリに含まれています) を vm-reply.el に当てて、再コンパイルして下さい。

VM のどれかのバッファにいるときに、プレゼンテーション・バッファの画像表示をトグルに切り換えたい場合は、以下を使って下さい:

     (define-key vm-mode-map "T" 'vm-w3m-safe-toggle-inline-images)

必ず答があるとは限らない
************

一般的な質問
======

  * Q. emacs-w3m って何ですか?

     w3m を Emacs 上で動かすインターフェースプログラムです。Emacs 上で動くウェブブラウザとして使うこともできます。さらなる情報は Introduction も参照してください。

  * Q. 動作する Emacs は?

     以下の Emacsen で動作することが確認されています。

       * Emacs 21

       * Emacs 22

       * XEmacs 21.4.17 以上、Mule 有り/無し

       * XEmacs 21.5-b19 以上、Mule 有り/無し

       * Meadow

     なお、XEmacs では APEL が必要となります。詳しくは Other Requirements を確認して下さい。

  * Q. 動作する w3m は?

     以下の w3m で動作することが確認されています。

       * w3m-0.3

       * w3mmee-p24-18 + moe-1.5.4

          例に上げた w3mmee は lang=many で configure されている (それは configure スクリプトが Which language do you prefer? と尋ねたときに 3 を入力することによってできます) ことに注意して下さい。さらにそれは libmoe パッケージを必要とします。

  * Q. XEmacs の SUMO パッケージに含まれている APEL をインストールしてあるのですが?

     XEmacs の APEL パッケージ (すべてのモジュールが Mule 付きの XEmacs 用にコンパイルされている) にはいろいろ問題があります。例えば std11 モジュールが FLIM のものとかち合う、など。それでも apel-1.23-pkg.tar.gz 以上のものだったら、そして shimbun の機能のために FLIM を使わないならば、 Mule 付きと無し両方の XEmacs で使えるのですが、オリジナルの APEL で置き換えるか新規にインストールすることを勧めます。取得場所は Other Requirements を見て下さい。

  * Q. CVS で最新版を取得したのですが、configure スクリプトが見つかりません。

     autoconf を実行してください。

トラブル
====

  * Q. 認証の必要なページのパスワードが入力できません。

     変数 w3m-async-exec に nil 以外の値が設定されていることを確認して下さい。

  * Q. 認証の必要な proxy サーバーのパスワードが入力できません。

     変数 w3m-async-exec に nil 以外の値が設定されていることを確認して下さい。

  * Q. リンクがたどれません。

     -header オプションを受け付ける w3m コマンドが必要です。w3m のバージョンを確認して下さい。

  * Q. 文字化けします。

     いくつかの原因があります。

      1. HTML ファイルの問題

          HTML ファイル中で <meta> タグによって指定されている文字コードと、実際の文字コードが異なると、正常に表示されません。M-x w3m-redisplay-with-charset RET または C c コマンドを使って、正しい文字コードを指定して再描画して下さい。

      2. 文字コード

          ISO-2022-JP(jis), EUC-JP または SHIFT_JIS 以外の文字コードで記述されたページについては、表示できない場合があります。次のいずれかの方法で対処して下さい。

           a. Mule-UCS (see Other Requirements) をインストールすると、Unicode で定義されている範囲の文字は表示できるようになります。インストール後、変数 w3m-use-mule-ucs が nil 以外の値に設定されていることを確認して下さい。なお、Emacs (それに emacs-w3m も) が EUC-JISX0213 および ISO-2022-JP-3 の文字コードを扱えるようにするには、Mule-UCS に附属している jisx0213 モジュールをインストールする必要があります (残念ながら XEmacs では使えませんが)。

           b. w3mmee や w3m-m17n をインストールして、変数 w3m-command に適切な値を設定して下さい。このように設定すると、emacs-w3m はこれらのプログラムが提供する多言語機能を利用するようになります。ただし、Emacs が扱える文字コードに限られますので、必要に応じて Mule-UCS もインストールしてください。

      3. Emacsen の問題

          XEmacs 21.1 では SHIFT_JIS のページが化けることがあります。また、XEmacs 21.2 でも beta36 以前では問題があります。そういうものを使っている場合は XEmacs をアップグレードして下さい。

          XEmacs 21.1 と 21.2 は、すでに公式にお役御免になったことを認識して下さい。

      4. standard-display-european を使わないで下さい

          それはしばしば Latin 文字を正しく表示させないので、概して有害です。例えば、&#8217 としてエンコードされたアポストロフィ文字 (') は、それがあたかも &#249 としてエンコードされたかのように、低アクセント (a grave accent) が付いた文字 u として表示されるでしょう。あなたの ~/.emacs ファイルか、Emacs が起動時に読み込む site ファイルに、何か以下のような行があるならば、それを取り除くことを強く勧めます。

               (standard-display-european 1)

          そこでは、引数は 1 ではなくて t かもしれません。

  * Q. 画像表示できません。

     いくつかの原因があります。

     古いバージョンの libungif ライブラリにはバグがあります。 libungif-4.1.0b1 以降のものをインストールしなければなりません。

     XEmacs では必ず gifsicle プログラムをインストールして下さい。現在利用できる全ての XEmacs 21.x にはバグがあり、emacs-w3m ではこれを使って対策しています (see Other Requirements)。

     古い w3m コマンドでは正常に表示できません。w3m のバージョンを確認して下さい。

  * Q. Cookie が必要なページを閲覧できません。

     (まだ実験的な機能です。)

     変数 w3m-use-cookies に nil 以外の値が設定されていることを確認して下さい。

  * Q. フォームに入力できません。

     (まだ実験的な機能です。)

     変数 w3m-use-form に nil 以外の値が設定されていることを確認して下さい。

  * Q. フォームを送信できません。

     (まだ実験的な機能です。)

     変数 w3m-use-form に nil 以外の値が設定されていることを確認して下さい。この機能を使うには、-post オプションを認識する w3m コマンドが必要です。w3m のバージョンを確認して下さい。

  * Q. フレームがレンダリングされません。

     w3mmee をインストールして、以下の設定を ~/.emacs ファイルに入れて下さい:

          (setq w3m-command "w3mmee")

  * Q. Emacs21 の tab bar に favicon が表示されないのですが。

     Image Magick に含まれている convert プログラムをインストールして下さい。http://www.imagemagick.org/ から入手できます。

  * Q. Emacs21 で favicon を表示しようとしたのですが、Emacs がロックしました。

  * Q. Emacs-w3m を立ち上げようとしたら、激しくディスクアクセスした後、 process convert exited abnormally with code 10 などと表示されました。どうなっているんでしょう?

     古いバージョンの Image Magick を使っていませんか?  ImageMagick-5.2.1 に付属している convert を使っていると、そうなることが知られています。 ImageMagick-5.4.0-5 (以上) に付属している convert では、正常動作が確認されています。

     もし ImageMagick が使えない、または使いたくない場合は ~/.emacs-w3m ファイルに

          (setq w3m-use-favicon nil)

     の設定を追加して下さい。

  * Q. なぜ emacs-w3m が w3mmee で動作しないのですか?

     もし lang=en または lang=ja で configure された w3mmee を使っているのならば、lang=many で configure し直して (それは configure スクリプトが Which language do you prefer? と尋ねたときに 3 を入力することによってできます)、w3mmee を再構築して下さい。

  * Q. なぜ emacs-w3m で web ページが見えないのでしょうか?  ローカルな html ファイルを見たり、素の w3m を使う場合は問題無いのですが。

     ある Linux の配布 (例えば Gentoo Linux) が含んでいる w3m コマンドには、 async パッチ (w3m on cygwin (http://www.page.sannet.ne.jp/knabe/w3m/w3m.html)) というものが当たっています。それは素の w3m コマンドを使うときに有用なのですが、emacs-w3m をハングさせるかもしれません。それが疑われるならば、w3m コマンドをソースから再インストールすることを勧めます。

  * Q. なぜ emacs-w3m のフレームがポップアップしないのですか?

     Emacs-w3m のフレームが他のフレームの下に隠れていても、それが M-x w3m RET コマンドでポップアップするのは、かなり便利です。しかし、いくつかのプラットフォーム、例えば Fedora Core 4〜6 上で Emacs 21 を走らせる場合に、それが働かないという報告がありました。それらのシステムでは、Emacs のフレームをポップアップさせる他の機能も動かないでしょう。もしあなたがそんな惨めな境遇にあるならば、以下の advice を試す価値があるかもしれません。

          (if (or (featurep 'xemacs) (< emacs-major-version 22))
              nil
            (defadvice raise-frame
              (after make-it-work (&optional frame) activate)
              "Make it work."
              (call-process
               "wmctrl" nil nil nil "-i" "-R"
               (frame-parameter (or frame (selected-frame))
                                'outer-window-id))))

     ここで wmctrl は、以下の場所で取得できる外部コマンドです。

     http://sweb.cz/tripie/utils/wmctrl/

     Advice を ~/.emacs ファイルに書き込む前に、wmctrl コマンドをインストールしなければならないことに、注意して下さい。

Shimbun に関する質問
==============

  * Q. なぜ shimbun モジュールがインストールされないのですか?

     FLIM パッケージがインストールされていないと、shimbun モジュール (shimbun/ ディレクトリにあるファイル群) はインストールされないことに注意して下さい。

     configure スクリプトは自動的に FLIM の有無を判定するよう設計されていますが、標準的ではないディレクトリに FLIM がインストールされていると、判定に失敗します。その場合は --with-addpath オプションを使って、FLIM がインストールされているディレクトリを明示的に指定して下さい。例です:

          % ./configure --with-addpath=$HOME/share/emacs/site-lisp/flim

あなたならきっと解決できる
*************

ウェブ上の新聞を読むための道具
***************

ウェブでは、ますます多くの新聞、メーリングリストのアーカイブ、掲示板、あるいは個人の日記 (hyper nikki system、weblogs または blogs) が公開されています。Shimbun ライブラリは、それらのコンテンツを貴方の好みのメーラーで読むことができるようにします。具体的には、それらのコンテンツを、メールのように整形・整理する機能を提供します。

すべての shimbun モジュールは、普通のメールやニュースのように読むことができる記事を生成することを目標にしています。しかしながら、ウェブサイトがそれらの記事の html をしばしば変更するので、その度に私たちは困難にぶつかります。

もし、無意味な画像や、記事とは関係の無いテキストが現れるのに気がついたら、 (たとえ些細なものでも) report-emacs-w3m-bug (see Mailing List) を使って報告して下さい。

Shimbun ライブラリは、現在、朝日新聞、読売オンライン、Emacs Devel、 XEmacs Beta、Gnus/Mew/Wanderlust などのメーリングリスト、Slashdot Japan、および他のたくさんのものに対応しています。具体的には、Shimbun Sites を参照してください。

ところで、Shimbun ライブラリを利用する時は、著作権について注意が必要です。Shimbun ライブラリによって加工・生成された記事の著作権は、その記事を生成する元になったデータの著作者に帰属します。したがって、得られた記事を利用する場合は、元のデータの著作者の権利を侵害しない範囲を守る法律上の義務があります。つまり、著作権法に定められた「私的利用」の範囲を守らなければならない、ということです。

Shimbun ライブラリを利用したことによって、万が一あなたが不利益を被ったり、あなたが他者の権利を侵害したことによってあなたが訴えられたとしても、emacs-w3m 開発チームは一切の責任を負いません。

Shimbun ライブラリはたくさんのモジュールのコレクションで、それらの各々は単独では何の役にも立ちません。ここでは代表的な三つの Shimbun のアプリケーションプログラム (それらのうちの二つは Shimbun ライブラリに含まれています) と、あなたが自分で Shimbun モジュールを作る方法について説明します (Emacs Lisp プログラムを書くことができる必要があります)。

Shimbun ライブラリを利用するためには、emacs-w3m を構築してインストールする前に FLIM パッケージ (加えて nnshimbun を使いたければ Gnus) をインストールする必要があることに注意して下さい。 FLIM パッケージには APEL パッケージが必要です。あなたは Other Requirements も見るべきかもしれません。

Gnus をウェブブラウザにする!
=================

Nnshimbun は Gnus のバックエンドです。しかしながら、例外的に Gnus ではなくて emacs-w3m とともに配布されています。 Nnshimbun は Gnus を並外れて便利なウェブブラウザにすることができます。すべての広告に煩わされずに新聞社のウェブサーバで記事を拾い読みすることができます。メーリングリストの記事アーカイブを、そのリストに講読登録しているように読むことができます。掲示板の書き込みも読むことができます。等々... でも Gnus は nnshimbun でウェブを介した投稿ができないので、フォローしたいときは emacs-w3m を使わなければいけないことに注意して下さい。

さらに emacs-w3m で HTML メッセージを整形するには Gnus も参照して下さい。T-gnus か Nana-gnus 用には、代わりに SEMI MUAs を見て下さい。

Nnshimbun を始めるための一番簡単な方法は、グループバッファで以下のようなことをすることです:

M-x gnus-group-make-shimbun-group RET asahi RET national RET

asahi と national は、接続したいサーバーに対応したキーワードと興味のあるグループに、それぞれ置き換えて下さい。 TAB か SPC をタイプすることによって、それらの名前を両方とも補完することができます。

もし gnus-group-mode-map に十分な空きがあるならば、以下のようなものを ~/.gnus.el ファイルに加えて下さい (T-gnus にはこれと同様のものがすでにあるので、わざわざ追加する必要はありません):

     (eval-after-load "gnus-group"
       '(define-key gnus-group-mode-map "Gn"
          'gnus-group-make-shimbun-group))

すると、M-x gnus-group-make-shimbun-group の代わりに G n を使うことができます。

誰かこのキーを Gnus タワーに予約してくれませんか?

この他に、gnus-group-make-shimbun-groups コマンドを使って、指定したサーバーのすべてのグループを作ることができます。

Nnshimbun は単にウェブサーバから HTML コンテンツを取り寄せて、それを記事として表示しますが、永続記事 (see Persistent Articles (The Gnus Manual)) を作る場合を除いて、ローカルファイルに記事をセーブすることはありません。Nnshimbun は NOV ファイルを、それぞれの nnshimbun グループで使います。そのバックエンドは nnml とほぼ同じです。

以下の nnshimbun に関する変数をカスタマイズすることが可能です:

nnshimbun-keep-backlog
     この変数は nnshimbun グループで gnus-keep-backlog 変数 (see Article Backlog (The Gnus Manual)) を上書きします。もし nnshimbun-keep-backlog を数字 N に設定すると、nnshimbun は最大で N の古い記事を後の再取得のためにバッファに溜めておきます。この変数が nil ではなく、数字でもない場合、 nnshimbun は 全て の既読記事を蓄えます (これは良い考えではありません)。デフォルト値は 300 です。

     Nnshimbun はあらかじめ取得した (prefetched) 記事の保存に backlog を使うので、小さすぎる値は prefetch-articles 機能 (下記参照) を損なうかもしれないことに注意して下さい。

nnshimbun-directory
     Nnshimbun が NOV ファイルを保存するディレクトリです。デフォルト値は ~/News/shimbun/ です。

nnshimbun-default-group-level
     gnus-level-default-subscribed を上書きする、デフォルトのグループレベルです。新たに作られた nnshimbun グループに適用されます。デフォルト値は nil です。

Nnshimbun は Gnus が提供する標準のグループパラメータ (グループパラメータを設定するための最も手軽な方法は、グループバッファで、設定したいグループの場所に移動してから G c をタイプすることです (see Group Parameters (The Gnus Manual))。) に加えて、nnshimbun 専用に設けられたグループパラメータを利用することができます。複数の nnshimbun 用のパラメータが nnshimbun-group-parameters という単一のグループパラメータ (すべてのグループで違う値を持つことができる) にまとめられています。それはプロパティリストで、例えば次のような値です:

     '(index-range all prefetch-articles off encapsulate-images on
                   expiry-wait 6)

以降はこれらのグループパラメータと、関連する変数の説明です。

prefetch-articles
     このグループパラメータが off または nil 以外の何かに設定されているグループでは、nnshimbun は新しい記事を探すだけではなく、それらの記事のダウンロードも行います。これは新しい記事の検索を遅くしますが、記事を閲覧するときに待たされません。このグループパラメータが設定されていないか、その値が nil になっているグループでは、代わりに変数 nnshimbun-pre-fetch-article の値 (デフォルトは off) が使われます。

encapsulate-images
     このグループパラメータが off または nil 以外の何かに設定されているグループでは、nnshimbun は元の記事に埋め込まれている画像データを MIME の multipart/related パートとして記事にはめ込みます。このグループパラメータが設定されていないか、その値が nil になっているグループでは、代わりに変数 nnshimbun-encapsulate-images の値が使われます。この変数 nnshimbun-encapsulate-images のデフォルト値は、shimbun ライブラリによって提供される変数 shimbun-encapsulate-images の値です (たぶんデフォルト値は t です)。

index-range
     グループパラメータ index-range で、ウェブサーバーから取得される記事の範囲を指定することができます。範囲の指定には以下の値を使って下さい:

     nil

     all
          すべてのページ

     last
          最新のページだけ

     integer N
          最新の N ページ

     Nnshimbun はサーバー上に存在する目次ページを解析して新しい記事の有無を調べます。サーバーによってはそのような目次ページが複数存在する場合があります。例えば、メーリングリストの記事を提供しているサーバーの場合は、その記事が投稿された日付によって分類された目次になっていることが一般的です。特に遅い回線を利用している時に、それらすべての巨大な目次を調べるには、相当な時間がかかるでしょう。

     Nnshimbun は前回の接続時に調べた目次については、なるべく調べずに済ませるようになっています。更に時間を節約したい場合は last を使って下さい。これは nnshimbun に、最新の目次だけを参照して新しい記事の検査を行なわせます。

     グループパラメータ index-range が設定されていないか、値が nil になっているグループでは、変数 nnshimbun-index-range の値 (デフォルトは nil) が使われます。

nnshimbun-group-parameters-alist
     これは Emacs Lisp 変数で、グループ名の正規表現と nnshimbun 用グループパラメータの連想リストです。デフォルト値は nil です。各々の要素は (REGEXP KEYWORD VALUE KEYWORD VALUE...) の形式を持ちます。例えば:

          '("^nnshimbun\\+asahi:" index-range all prefetch-articles off
            encapsulate-images on expiry-wait 6)

     似た名前を持つ (すなわち、互いに似た性格を持っていそうな) 複数のグループに対して同じ nnshimbun グループパラメータを指定することができるので、個々のグループに対してそれぞれグループパラメータを設定する代わりに使うことができて便利です。もしグループですでにグループパラメータの設定が行なわれていた場合は、この変数よりもそちらが優先されます。

Nnshimbun には記事の期限切れ消去を行なわせることができます (Nnshimbun グループで自動期限切れ消去を行なう方法は主に二つあります。一つはグループ名の正規表現 (``^nnshimbun\\+'' で始まらなければなりません) を変数 gnus-auto-expirable-newsgroups に追加して、消去するまでの日数を各グループ毎に nnmail-expiry-wait-function で指定することです。もう一つは、自動期限切れ消去を行なわせたいたいすべての nnshimbun グループで、グループパラメータ auto-expire を t に設定して、グループパラメータ expiry-wait で消去するまでの期限を指定するやり方です。詳しいことは (gnus)Expiring Mail を参照して下さい。 expiry-wait グループパラメータが設定されていないグループでは、デフォルトの値が適用されます。)。記事が期限切れ消去されると言っても、それが遠隔サーバーから削除されるわけではなく、それはずっとそこから取得可能であることを覚えておいて下さい。消えるのはあなた自身の nnshimbun 用の NOV ファイル (Nnshimbun 用の NOV ファイルは ``~/News/shimbun/asahi/national/.overview'' のような名前です。) の、消去される記事に該当する行です。それによってその記事は二度と概略バッファに現れなくなります。

Nnshimbun グループで記事の期限切れ消去を行なわないと NOV ファイルが際限無く太り続け、非常に古い記事があたかも存在しているように見えるかもしれません (実際には、それらは新聞社のサーバーで三年前に期限切れ消去されてしまっているかもしれない!)。それを読もうとしても記事バッファには何も現れないでしょう。一方、メーリングリストの記事を提供しているたいていのサーバーは、一般的に過去の全記事を提供しています。憂愁の彼方に去りし古き良き時代に、あなたが興じた記事を懐かしくうるうるして読み返すことができるように、そういうグループでは期限切れ消去はさせたくないと思うかもしれません。

他のメールバックエンドと同様に、nnshimbun のグループ毎に記事に自動期限切れ消去の印を付けて、残しておく期間を設定することができます。ただし nnshimbun バックエンドと他のメールバックエンドには、少し違いがあります:

  * 第一に、残しておく期間のデフォルト値は以下の優先度で決定されます。グループによってデフォルト値が異なるかもしれないことに注意して下さい。

      1. グループにおける expiry-wait グループパラメータの値。

      2. そのグループを対象として、変数 nnmail-expiry-wait-function を評価することによって得られた値。

      3. グループに対応する shimbun モジュールが提供するデフォルト値。

      4. 変数 nnmail-expiry-wait の値。

     第二に、変数 nnmail-expiry-wait-function によって設定される関数に与えられる引数に、``nnshimbun+asahi:national'' のようにバックエンドとサーバーの名前が含まれることです。他のメールバックエンドの場合にはグループ名だけが与えられるのに、です。例を挙げましょう:

          (setq nnmail-expiry-wait-function
                (lambda (group)
                  (cond ((string-equal group "ding") 7)
                        ((string-equal group "nnshimbun+ding:ding") 'never))))

     これは、同じ ding メーリングリスト用に二つのグループがあることを意味します: 一つはリストのメンバーとして講読登録しています。もう一つは Gnus タワーのメーリングリストアーカイブから読むためのものです。どうです、なかなか賢いでしょ?  ``ding'' グループのローカルなメールファイルは七日で期限切れ消去され、ローカルディスクの容量が節約されます。しかし二つ目のグループでは、前世紀の記事でさえ読むことができます (それが本当に必要ならば、ですが)。

     第三に、これはあなたに疑念が沸いたときに思い出すことができるように書き留められています: nnshimbun グループのすべての記事が期限切れ消去されるべきときでも、最新の一通だけは消さずに残しておきます。これはあなたの未練心を満足させるためではなく、次回にこのグループの新しい記事を取得しようとしたときに、nnshimbun がどこから始めるかを知って、すべての記事を取得し直さないようにするためです。

Nnshimbun の期限切れ消去に関係するグループパラメータと変数は以下の通りです:

expiry-wait
     どうか混乱なさらないように。expiry-wait グループパラメータが nnshimbun 専用に作られたグループパラメータ nnshimbun-group-parameters の要素の一つとして提供されます。それは標準のグループパラメータと同じ名前を持ち、意味も同じです。あなたはどちらを使っても構いません。もし nnshimbun 専用のものが nil 以外の値に設定されると、標準のものよりも優先されます。これは nnshimbun に関係するものを ``Gnus Customize'' バッファ (グループバッファで G c をタイプすると現れる) の一箇所に集めるためと、変数 nnshimbun-group-parameters-alist で一括して管理できるようにすることを目的に用意したものです (なぜ auto-expire などが nnshimbun 専用のグループパラメータに含まれないの? という問いに対する答えをすでに用意しています。その答えとは、 expiry-wait が nnshimbun バックエンドによって取り扱われるのに対して、auto-expire は Gnus の中枢が取り扱います。したがって、 Gnus が一つの特定のバックエンドのために働く (すなわち、 nnshimbun 専用のグループパラメータから値を読む) ように Gnus の中枢機能を拡張することは、Gnus の設計ポリシーに反するのです。)。設定できる値は標準のグループパラメータと同様に、時限消去の日数、never または immediate です。

nnshimbun-keep-unparsable-dated-articles
     この変数の値が nil でない場合は、作成された (または到着した) 時刻がわからない記事は期限切れ消去されません。なにしろどのくらい古いのかわからないんですから。デフォルト値は t です。nil に設定すると、期限切れ消去の処理が行なわれるときに、期限がわからない記事でも無条件で消されてしまいます。まあ、年の暮れの大掃除の役には立つことが判明するかもしれません。

Mew で新聞を読む
==========

Mew Shimbun は shimbun と Mew (version 2.1 以降) とともに使うことを意図した Emacs Lisp プログラムです。Mew, APEL および FLIM もインストールされていれば、emacs-w3m をインストールするときに一緒にインストールされます。

Mew も参照することをお勧めします。

 1. 諸設定

     以下の各行を ~/.mew.el ファイルの最後に書いて下さい:

          ;;; mew-shimbun のロード、キー定義

     ;; (setq mew-shimbun-use-unseen t) ;;  (未読管理をするときはコメントを外して下さい。この変数は必ず (require 'mew-shimbun) の前で設定しないといけません。)

          (require 'mew-shimbun)
          (define-key mew-summary-mode-map "G"  (make-sparse-keymap))
          (define-key mew-summary-mode-map "Gg" 'mew-shimbun-goto-folder)
          (define-key mew-summary-mode-map "GG" 'mew-shimbun-goto-unseen-folder)
          (define-key mew-summary-mode-map "Gi" 'mew-shimbun-retrieve)
          (define-key mew-summary-mode-map "GI" 'mew-shimbun-retrieve-all)
          (define-key mew-summary-mode-map "Gr" 'mew-shimbun-re-retrieve)
          (define-key mew-summary-mode-map "GR" 'mew-shimbun-re-retrieve-all)
          (define-key mew-summary-mode-map "Ge" 'mew-shimbun-expire)
          (define-key mew-summary-mode-map "GE" 'mew-shimbun-expire-all)

          ;; mew-shimbun-folder-groups に Mew で購読する shimbun servers 及び
          ;; group を設定します。それぞれの要素は
          ;; ("folder" ("server.group" . range) ...) の形式です。range には
          ;; all, last, および数字が指定できます。

          (setq mew-shimbun-folder-groups
                '(;; +shimbun/yomiuri という folder に yomiuri.shakai,
                  ;; yomiuri.sports などを一括して取得します。
                  ("yomiuri"
                   ("yomiuri.shakai" . 2)
                   ("yomiuri.sports". 2)
                   ("yomiuri.kokusai". 2))
                  ;; +shimbun/security-memo に security-memo.memo を取得します。
                  ("security-memo"
                   ("security-memo.memo" . 2))
                  ("slashdot-jp"
                   ("slashdot-jp.story" . last))
                  ;; このように、異なる server の group も一つの folder
                  ;; (+shimbun/emacs) で読むことができます。
                  ("emacs"
                   ("airs.wl" . last)
                   ("emacs-w3m.emacs-w3m" . last))
                  ;; +shimbun/hns/arisawa, +shimbun/hns/miyoshi にそれぞれの
                  ;; 日記を取得します。
                  ("hns/arisawa"
                   ("hns.arisawa" . last))
                  ("hns/miyoshi"
                   ("hns.miyoshi" . last))))

     以上で基本的な設定は終了です。他のユーザ定義変数は mew-shimbun グループを M-x customize-group するか、ソースを見て下さい。

 2. 記事の購読

      a. 最初の購読

          上記の設定をしたあと、まず G I しましょう (mew-shimbun-retrieve-all)。 mew-shimbun-folder-groups で種々の設定を行なった shimbun folder が +shimbun 以下に出来ます。また、新たに group を追加したときも G I すると便利です。なお、 +shimbun は mew-shimbun-folder という変数で好みのものに変更できます。

      b. shimbun folder への移動

          通常の g (mew-summary-goto-folder) でも shimbun folder への移動はできますが、 G g (mew-shimbun-goto-folder) を使うと shimbun folder 限定で移動できます。また C-u G g と prefix をつけたときは、新規記事のある folder (まだ scan をしていない folder) のみ表示します。 G G でも同様です。

      c. folder 単位での記事の取得

          shimbun folder で G i (mew-shimbun-retrieve) すると、現在の shimbun folder で新規記事を取得します。

      d. 更新された記事の取得

          特定の記事を表示した状態で G r (mew-shimbun-re-retrieve) すると、その記事が更新されていたら更新し、同時に新規記事も取得します。 C-u G r とすると、mew-shimbun-mark-re-retrieve に指定したマーク (デフォルト値は @) の記事の更新を試みます。CNET などで使うと便利でしょう。

          G R (mew-shimbun-re-retrieve-all) では、すべての記事の新規性を調べ取得しなおします。C-u G R ではリージョンで指定した範囲の記事を対象とします。おそらくハイパー日記システムが稼働している日記サイトでは有意義なコマンドでしょう。

 3. 未読管理

     ~/.mew.el ファイルで以下の設定を行なっていると、

          (setq mew-shimbun-use-unseen t)

     新規に取得した記事に mew-shimbun-mark-unseen で設定したマーク (デフォルトは *) がつくようになり、読むと自動的に消えます。

     通常、Mew の summary モードでマークをつける、あるいは消した後、scan をしないと .mew-cache ファイルに反映されませんが、~/.mew.el ファイルで以下の設定を行なうことにより、

          (setq mew-shimbun-use-unseen-cache-save t)

     Mew の終了時や folder の kill 時 (C-c C-q を使ったとき) に shimbun folder は自動的に .mew-cache ファイルを保存するようになります。ただし、確実 (mew-touch-folder-p が t の人はほぼ 100% 保存できますが、nil の人が保存できる可能性はほとんど 0% だと思われます。) に保存するわけではありません。既読になった情報を確実に cache に保存するには、その folder を読み終わったときに scan update をする習慣をつけると良いでしょう。

     未読に使うマークが * じゃダメ、という方は、変数 mew-shimbun-mark-unseen をカスタマイズして下さい (上述)。 C-u N でそのマークを指定すると楽しい未読ライフをおくることができると思います。

 4. 期限切れ記事の消去

     事前に mew-shimbun-expires を設定しておくと、期限切れ記事の消去を行なうことができます。例えば:

          (setq mew-shimbun-expires
                '(("yomiuri" . 7)
                  ("asahi" . 1)
                  ("slashdot-jp" . 7)
                  ("emacs" . 7)))

     上記のように設定しておくと、+shimbun/yomiuri は 7日、 +shimbun/asahi は 1日と期限を設定することができます。指定されていない shimbun folder は消去しません。G e (mew-shimbun-expire) でその folder の期限切れ記事を消去します。 G e (mew-shimbun-expire) で設定した全ての folder で記事の消去を実行します。なお、一度消去した記事は復旧出来ませんので注意して下さい。

 5. 未読マークとして $ を追加する方法

     $ マークを新たに作成し、$ マークを未読マークとして使うには、次の記述を ~/.mew.el ファイルに記述して下さい。なお、$ 以外の記号にしたければ、 http://www.mew.org/ml/mew-dist-2.0/msg01251.html を参照して記述を生成して下さい。

          ;;----------------------------------------------------------------------
          ;;; $ を未読マークとして使うための記述
          (setq mew-mark-unseen ?$)
          (setq mew-shimbun-mark-unseen mew-mark-unseen)
          (setq mew-mark-show-list (cons mew-mark-unseen mew-mark-show-list))
          (setq mew-mark-afterstep-spec
                (cons (cons mew-mark-unseen '(1 0 1 0 0 0 0))
                      mew-mark-afterstep-spec))
          (setq mew-mark-spec
                (cons (list mew-mark-unseen "unseen" 0 nil nil nil nil nil)
                      mew-mark-spec))
          (setq mew-highlight-mark-keywords
                (cons
                 (cons mew-mark-unseen 'mew-face-mark-unseen)
                 mew-highlight-mark-keywords))
          (defface mew-face-mark-unseen
            '((((class color) (type tty))
               (:foreground "green"))
              (((class color) (background light))
               (:foreground "deep pink" :bold t :italic t))
              (((class color) (background dark))
               (:foreground "thistle"))
              (t (:bold t)))
            "*Face to highlight the unseen mark"
            :group 'mew-highlight)
          (defun mew-summary-unseen (&optional count)
            "Put the unseen mark(default is '$') in COUNT times."
            (interactive "P")
            (mew-mark-put-mark-loop (function mew-summary-unseen-one) count nil))
          (defun mew-summary-unseen-one (&optional no-msg)
            "Put the unseen mark(default is '$') on this message."
            (mew-mark-put-mark mew-mark-unseen no-msg))
          (defun mew-summary-mark-unseen ()
            "Change the '*' mark into the '$' mark."
            (interactive)
            (mew-summary-exchange-mark mew-mark-review mew-mark-unseen))
          (defun mew-thread-mark-unseen ()
            "Put the '$' mark on all messages of the current sub-thread."
            (interactive)
            (mew-thread-mark mew-mark-unseen))

          (define-key mew-summary-mode-map "$"  'mew-summary-unseen)
          (define-key mew-summary-mode-map "m$" 'mew-summary-mark-unseen)
          (define-key mew-summary-mode-map "t$" 'mew-thread-mark-unseen)
          ;;----------------------------------------------------------------------

Wanderlust で新聞を読む
=================

Wanderlust には ELMO モジュールの一つとして elmo-shimbun が含まれているので、名前が @ で始まるフォルダにアクセスするだけで shimbun を読むことができます (see Shimbun Folder (The Wanderlust-ja Manual))。

新聞が読めるサイト
=========

Shimbun ライブラリが対応しているサイトの一覧表です。

新聞社
---

Shimbun ライブラリが対応している新聞社です。

朝日新聞 (http://www.asahi.com/)
     asahi.book.author asahi.book.bestseller asahi.book.booktimes asahi.book.bunko asahi.book.comic asahi.book.edu asahi.book.hondana asahi.book.navi asahi.book.news asahi.book.paperback asahi.book.ranking asahi.book.review asahi.book.shinsho asahi.book.special asahi.book.topics asahi.business asahi.business.aera asahi.business.column asahi.business.reuter asahi.business.toyo asahi.car asahi.car.italycolumn asahi.car.motorsports asahi.car.newcar asahi.car.newcarbywebcg asahi.culture asahi.culture.column asahi.culture.yurufemi asahi.digital asahi.digital.apc asahi.digital.av asahi.digital.bcnnews asahi.digital.column01 asahi.digital.hotwired asahi.digital.internet asahi.digital.mobile asahi.digital.nikkanko asahi.digital.pc asahi.editorial asahi.edu asahi.edu.column asahi.edu.it asahi.edu.kosodate asahi.edu.news asahi.edu.nyushi asahi.edu.tamate asahi.english asahi.health asahi.health.aged asahi.health.alz asahi.health.medical asahi.housing asahi.housing.amano asahi.housing.column asahi.housing.diary asahi.housing.soudan asahi.housing.world asahi.igo asahi.international asahi.international.america asahi.international.asia asahi.international.asiamachi asahi.international.etc asahi.international.europe asahi.international.jinmin asahi.international.middleeast asahi.international.seoul asahi.international.shien asahi.job asahi.job.special asahi.kansai asahi.kansai.beichou asahi.kansai.depa asahi.kansai.fuukei asahi.kansai.heibon asahi.kansai.honma asahi.kansai.kansaiisan asahi.kansai.madam asahi.kansai.okan asahi.kansai.otoriyose asahi.kansai.sakana asahi.kansai.sanshi asahi.kansai.sweets asahi.kansai.umaimon asahi.life asahi.life.column asahi.life.food asahi.national asahi.national.calamity asahi.national.etc asahi.national.trial asahi.obituaries asahi.politics asahi.rss asahi.science asahi.shopping asahi.shopping.kishi asahi.shougi asahi.sports asahi.sports.baseball asahi.sports.column asahi.sports.football asahi.sports.spo asahi.tenjin asahi.travel asahi.travel.kaido asahi.travel.zeitaku asahi.wakamiya asahi.world.china asahi.world.germany

     これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行を ~/.emacs ファイルに加えて下さい。

          (setq shimbun-asahi-prefer-text-plain nil)

     一方、HTML の記事を作るために asahi-html バックエンドを使うこともできます。それを使うには、例えばグループ名として asahi.business の代わりに asahi-html.business を指定して下さい。

朝日新聞 (http://mytown.asahi.com/)
     asahi-mytown.(hokkaido...okinawa) asahi-mytown.usa

     米国と日本の全都道府県を網羅する朝日新聞の地方版です。

毎日新聞 (http://www.mainichi-msn.co.jp/)
     mainichi.entertainment mainichi.entertainment.car mainichi.entertainment.cinema mainichi.entertainment.game mainichi.entertainment.geinou mainichi.entertainment.igo mainichi.entertainment.manga mainichi.entertainment.music mainichi.entertainment.shougi mainichi.entertainment.tv mainichi.eye.closeup mainichi.eye.hassinbako mainichi.eye.hito mainichi.eye.kaisetsu mainichi.eye.kinji mainichi.eye.kishanome mainichi.eye.mieru mainichi.eye.newsup mainichi.eye.shasetsu mainichi.eye.shasetsu.archive mainichi.eye.yoroku mainichi.eye.yuuraku mainichi.kansai.sanshi mainichi.keizai mainichi.keizai.it mainichi.keizai.kaigai mainichi.keizai.kigyou mainichi.keizai.kigyou.info mainichi.keizai.kinyu mainichi.keizai.seisaku mainichi.keizai.wadai mainichi.keizai.wadai.kansoku.archive mainichi.kokusai mainichi.kokusai.afro-ocea mainichi.kokusai.america mainichi.kokusai.asia mainichi.kokusai.europe mainichi.kokusai.mideast mainichi.kurashi mainichi.kurashi.bebe mainichi.kurashi.fashion mainichi.kurashi.katei mainichi.kurashi.kenko mainichi.kurashi.kokoro mainichi.kurashi.shoku mainichi.kurashi.shumi mainichi.kurashi.travel mainichi.kurashi.women mainichi.science mainichi.science.env mainichi.science.kagaku mainichi.science.medical mainichi.science.rikei mainichi.seiji mainichi.seiji.feature mainichi.seiji.gyousei mainichi.seiji.kokkai mainichi.seiji.seitou mainichi.seiji.senkyo mainichi.shakai mainichi.shakai.edu mainichi.shakai.edu.mori mainichi.shakai.edu.elearningschool.nyushi.archive mainichi.shakai.edu.net.morals.archive mainichi.shakai.fu mainichi.shakai.gakugei mainichi.shakai.ji mainichi.shakai.jiken mainichi.shakai.koushitsu mainichi.shakai.tenki mainichi.shakai.wadai mainichi.sokuhou mainichi.sports mainichi.sports.ama mainichi.sports.battle mainichi.sports.feature mainichi.sports.field mainichi.sports.keiba mainichi.sports.major mainichi.sports.pro mainichi.sports.soccer mainichi.today mainichi.yougo

     これらのグループは、デフォルトで写真をも含む HTML の記事を作ります。それらに、テキストだけの記事を生成させたいならば、以下の行を ~/.emacs ファイルに加えて下さい。

          (setq shimbun-mainichi-prefer-text-plain t)

日刊スポーツ (http://www.nikkansports.com/)
     nikkansports.baseball nikkansports.mlb nikkansports.soccer nikkansports.world-soccer nikkansports.sports nikkansports.battle nikkansports.horseracing nikkansports.entertainment nikkansports.society nikkansports.leisure

日本経済新聞 (http://www.nikkei.co.jp/)
     nikkei.top nikkei.main nikkei.keizai nikkei.sangyo nikkei.tento nikkei.zinzi nikkei.report nikkei.kansai nikkei.it.business nikkei.it.busi_gyoukai nikkei.it.biz-system nikkei.it.sox nikkei.it.data nikkei.it.taidan nikkei.it.management nikkei.it.analyst nikkei.it.internet nikkei.it.broad nikkei.it.net_gyoukai nikkei.it.iptel nikkei.it.tele nikkei.it.broadcast nikkei.it.internet-column nikkei.it.contents nikkei.it.literacy nikkei.it.ec nikkei.it.policy nikkei.it.e-gov nikkei.it.mobile nikkei.it.mob_gyoukai nikkei.it.mobsoft nikkei.it.mobcon nikkei.it.money nikkei.it.wirelesslan nikkei.it.one nikkei.it.kougengaku nikkei.it.world nikkei.it.media nikkei.it.security nikkei.it.net_crime nikkei.it.digital nikkei.it.digi_contents nikkei.it.pc nikkei.kokunai nikkei.markets nikkei.kawase nikkei.kinri nikkei.ft nikkei.dj nikkei.ngyoseki nikkei.gyosuuchi nikkei.gyoseki nikkei.china nikkei.market nikkei.kaigai nikkei.seiji nikkei.shakai nikkei.retto nikkei.sports nikkei.newpro nikkei.release nikkei.release.it.comp nikkei.release.it.peri nikkei.release.it.sys nikkei.release.it.cont nikkei.release.it.net nikkei.release.it.lsi nikkei.release.it.game nikkei.release.it.etc nikkei.release.dist.depart nikkei.release.dist.ryohan nikkei.release.dist.zakka nikkei.release.dist.cosme nikkei.release.dist.car nikkei.release.dist.book nikkei.release.dist.record nikkei.release.dist.food nikkei.release.dist.mercha nikkei.release.dist.mail nikkei.release.dist.netshop nikkei.release.dist.etc nikkei.release.money.bank nikkei.release.money.sec nikkei.release.money.am nikkei.release.money.insu nikkei.release.money.etc nikkei.release.maker.chemi nikkei.release.maker.mecha nikkei.release.maker.car nikkei.release.maker.elec nikkei.release.maker.food nikkei.release.maker.sports nikkei.release.maker.apparel nikkei.release.maker.commu nikkei.release.maker.etc nikkei.release.service.medic nikkei.release.service.rest nikkei.release.service.trans nikkei.release.service.energy nikkei.release.service.enter nikkei.release.service.env nikkei.release.service.consul nikkei.release.service.edu nikkei.release.service.haken nikkei.release.service.life nikkei.release.service.media nikkei.release.service.lease nikkei.release.service.travel nikkei.release.service.etc nikkei.release.const.const nikkei.release.const.house nikkei.release.const.etc nikkei.shasetsu nikkei.okuyami

スポニチ (http://www.sponichi.co.jp/)
     sponichi.baseball sponichi.soccer sponichi.usa sponichi.others sponichi.society sponichi.entertainment sponichi.horseracing

讀売新聞 (http://www.yomiuri.co.jp/)
     yomiuri.atmoney yomiuri.entertainment yomiuri.editorial yomiuri.kyoiku yomiuri.national yomiuri.obit yomiuri.politics yomiuri.science yomiuri.sports yomiuri.world

     これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行を ~/.emacs ファイルに加えて下さい。

          (setq shimbun-yomiuri-prefer-text-plain nil)

     一方、HTML の記事を作るために yomiuri-html バックエンドを使うこともできます。それを使うには、例えばグループ名として yomiuri.atmoney の代わりに yomiuri-html.atmoney を指定して下さい。

産経新聞 (http://www.sankei.co.jp/)
     sankei.news.shakai sankei.news.kokusai sankei.news.seiji sankei.news.keizai sankei.news.seikatsu sankei.news.kyouiku sankei.news.sports sankei.news.cutlure sankei.news.chiho sankei.special.komori sankei.special.kuroda sankei.special.ito sankei.special.jieitai sankei.special.kenpo sankei.special.kyouiku sankei.special.kiko sankei.ronsetsu.shucho sankei.ronsetsu.sankeisho sankei.ronsetsu.seiron

BBC (http://www.bbc.co.uk/)
     bbc.news

Spiegel Online (http://www.spiegel.de/)
     spiegel.news

ゲンダイネット (http://gendai.net/)
     gendai-net.today gendai-net.syakai gendai-net.sports gendai-net.geino gendai-net.wadai gendai-net.kenko gendai-net.syoku gendai-net.book

ニュースサイト
-------

Shimbun ライブラリが対応しているニュースサイトです。

CNET (http://news.com.com/)
     cnet.news cnet.enterprise.software cnet.enterprise.hardware cnet.security cnet.networking cnet.personal.technology cnet.newsmakers cnet.perspectives

CNET Japan (http://japan.cnet.com/)
     cnet-jp.general cnet-jp.news cnet-jp.special cnet-jp.opinion cnet-jp.blog.geetstate cnet-jp.blog.kenn cnet-jp.blog.lessig cnet-jp.blog.matsumura cnet-jp.blog.nakajima cnet-jp.blog.saeki cnet-jp.blog.sakamoto cnet-jp.blog.sasaki cnet-jp.blog.sentan cnet-jp.blog.staff cnet-jp.blog.takawata cnet-jp.blog.watanabe

CNN Japan (http://www.cnn.co.jp/)
     cnn-jp.business cnn-jp.fringe cnn-jp.science cnn-jp.showbiz cnn-jp.sports cnn-jp.top cnn-jp.usa cnn-jp.world

Engadget Japanese (http://japanese.engadget.com/)
     engadget-ja.top

エキサイト ニュース (http://www.excite.co.jp/)
     excite.bit-koneta excite.world-odd

FAU-IAA (http://www.fau.org/)
     fau.news

Heise Online (http://www.heise.de/)
     heise.news heise.telepolis

Infoshop News (http://news.infoshop.org/)
     infoshop.news

インプレス (http://www.watch.impress.co.jp/)
     impress.enterprise impress.pc impress.dc impress.akiba impress.av impress.game impress.k-tai impress.internet impress.bb impress.forest impress.robot

ITmedia (http://www.itmedia.co.jp/)
     itmedia.news.bursts, itmedia.news.domestic, itmedia.news.foreign, itmedia.news.products, itmedia.news.technology, itmedia.news.web20, itmedia.news.nettopics, itmedia.news.society, itmedia.news.security, itmedia.news.industry, itmedia.news.research, itmedia.news.sp_amd, itmedia.anchordesk, itmedia.bizid, itmedia.enterprise, itmedia.+D.plusd, itmedia.+D.mobile, itmedia.+D.pcupdate, itmedia.+D.lifestyle, itmedia.+D.games, itmedia.+D.docomo, itmedia.+D.au_kddi, itmedia.+D.vodafone, itmedia.+D.shopping

Japan Times (http://www.japantimes.co.jp/)
     japantimes.general japantimes.business

LAUT AG (http://www.laut.de/)
     laut-de.news laut-de.platten laut-de.platten_alternative laut-de.platten_dance laut-de.platten_hiphop platten_jazz laut-de.platten_metal laut-de.platten_pop laut-de.platten_rnb laut-de.platten_rock

Open Tech Press (http://opentechpress.jp/)
     opentechpress-jp.general opentechpress-jp.enterprise opentechpress-jp.opensource opentechpress-jp.security opentechpress-jp.news opentechpress-jp.pr

N24 (http://www.n24.de/)
     n24-de.boerse n24-de.boulevard n24-de.nachrichten n24-de.netnews n24-de.politik n24-de.sport n24-de.wirtschaft

Rediff.com (http://www.rediff.com/)
     rediff.news

Slashdot Japan (http://slashdot.jp/)
     slashdot-jp.story slashdot-jp.askslashdot slashdot-jp.bookreview slashdot-jp.bsd slashdot-jp.developers slashdot-jp.interview slashdot-jp.linuxkernel slashdot-jp.mac slashdot-jp.mobile slashdot-jp.science slashdot-jp.security slashdot-jp.slash slashdot-jp.diary.oliver

     変数 shimbun-slashdot-jp-group-alist に適切な設定を加えると、その他のユーザーの日記も閲覧できます。

Weekly World News (http://www.weeklyworldnews.com/news/)
     weeklyworldnews.news

Die Welt (http://www.welt.de/)
     welt-de.news

HotWired Japan (http://hotwired.goo.ne.jp/)
     wired-jp.news wired-jp.business wired-jp.culture wired-jp.technology wired-jp.blog.ogura wired-jp.blog.sasaki wired-jp.blog.takahashi

Yahoo! Japan (http://headlines.yahoo.co.jp/)
     yahoo.politics yahoo.society yahoo.people yahoo.business-all yahoo.market yahoo.stock yahoo.industry yahoo.international yahoo.entertainment yahoo.sports yahoo.computer yahoo.hokkaido yahoo.tohoku yahoo.kanto yahoo.sinetsu yahoo.hokuriku yahoo.tokai yahoo.kinki yahoo.chugoku yahoo.sikoku yahoo.kyushu yahoo.okinawa

     これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行を ~/.emacs ファイルに加えて下さい。

          (setq shimbun-yahoo-prefer-text-plain nil)

ZDNet Japan (http://japan.zdnet.com/)
     zdnet-jp.news zdnet-jp.news.network zdnet-jp.news.hardware zdnet-jp.news.software zdnet-jp.news.manage zdnet-jp.news.security zdnet-jp.news.internet zdnet-jp.news.os zdnet-jp.news.db zdnet-jp.news.system zdnet-jp.column zdnet-jp.column.sp1 zdnet-jp.column.netsecurity1 zdnet-jp.column.ea1 zdnet-jp.column.btl zdnet-jp.column.solutionIT zdnet-jp.channel.security zdnet-jp.channel.ilm zdnet-jp.blog.iida zdnet-jp.blog.mhatta zdnet-jp.blog.kurei zdnet-jp.blog.opensource zdnet-jp.blog.soa zdnet-jp.blog.dp

Die Zeit (http://www.zeit.de/)
     zeit-de.auto zeit-de.computer zeit-de.deutschland zeit-de.feuilleton zeit-de.gesundheit zeit-de.international zeit-de.leben zeit-de.literatur zeit-de.musik zeit-de.news zeit-de.reisen zeit-de.schule zeit-de.sport zeit-de.studium zeit-de.wirtschaft zeit-de.wissen zeit-de.zuender

オーマイニュース (http://ohmynews.co.jp/)
     ohmynews-jp.shakai ohmynews-jp.keizai ohmynews-jp.seiji ohmynews-jp.kokusai ohmynews-jp.entame ohmynews-jp.life ohmynews-jp.science ohmynews-jp.sports ohmynews-jp.books ohmynews-jp.all

The Onion (http://www.theonion.com/)
     the-onion.news

メーリングリスト
--------

最近では、メーリングリストに投稿された過去記事のアーカイブが WEB 上に幾つも公開されています。Shimbun ライブラリは、以下のアーカイブを扱うことができます。

Semi-gnus Mailing List in Japan (http://lists.airs.net/semi-gnus/archive/)
     airs.semi-gnus-ja

Wanderlust Mailing List (http://lists.airs.net/)
     airs.wl airs.wl-en

Big Brother DataBase Mailing List (http://www.rc.tutrp.tut.ac.jp/bbdb-ml/)
     bbdb-ml.bbdb-ml

GNOME Mailing List (http://mail.gnome.org/archives/)
     gnome.balsa-list gnome.calendar-list gnome.cvs-commits-list gnome.foundation-announce gnome.foundation-list gnome.fplan-list gnome.gconf-list gnome.gdome gnome.gnome-1.4-list gnome.gnome-announce-list gnome.gnome-components-list gnome.gnome-db-list gnome.gnome-de gnome.gnome-debugger-list gnome.gnome-devel-list gnome.gnome-doc-list gnome.gnome-gui-list gnome.gnome-hackers gnome.gnome-hackers-readonly gnome.gnome-hackers-test gnome.gnome-i18n gnome.gnome-i18n-tools gnome.gnome-kde-list gnome.gnome-list gnome.gnome-office-list gnome.gnome-pilot-list gnome.gnome-sound-list gnome.gnome-themes-list gnome.gnome-ui-hackers gnome.gnome-web-list gnome.gnome-webmaster-list gnome.gnome-workshop-list gnome.gnomecc-list gnome.gnumeric-list gnome.gtk-app-devel-list gnome.gtk-devel-list gnome.gtk-doc-list gnome.gtk-i18n-list gnome.gtk-list gnome.gtk-perl-list gnome.guppi-list gnome.libart gnome.libart-hackers gnome.orbit-list gnome.vote gnome.wm-spec-list gnome.xml gnome.xslt

Java カンファレンス Mailing List (http://www.java-conf.gr.jp/archives/)
     javaconf.servlet-ml javaconf.business-ml javaconf.duke-in-the-box-ml javaconf.jfriends-ml javaconf.JGT-ml javaconf.jini-ml javaconf.ejb-ml javaconf.cm-ml javaconf.horb-ml javaconf.talk-ml

LinuxCE JP Mailing List (http://www.peanuts.gr.jp/~kei/ml-archive/)
     linuxce-jp.users

Mule Mailing List (http://www.m17n.org/)
     m17n.mule-ja m17n.mule

Meadow Mailing List (http://www.ysnb.net/meadow/)
     meadow.meadow-develop meadow.meadow-users-jp

Mew Mailing List (http://www.mew.org/ml/)
     mew.mew-dist mew.mew-win32 mew.mew-int

MagicPoint Mailing List (http://www.mew.org/ml/)
     mew.mgp-users mew.mgp-users-jp

www.namazu.org Mailing Lists (http://www.namazu.org/cgi-bin/mailman/listinfo)
     namazu.kakasi-commits namazu.kakasi-dev namazu.migemo namazu.namazu-users-en namazu.namazu-users-ja namazu.namazu-devel-ja namazu.namazu-devel-en namazu.namazu-win32-users-ja namazu.sary

emacs-w3m Mailing List (http://emacs-w3m.namazu.org/ml/)
     emacs-w3m.emacs-w3m

NetBSD JP Mailing List (http://www.jp.netbsd.org/ja/JP/ml/)
     netbsd.announce-ja netbsd.junk-ja netbsd.tech-misc-ja netbsd.tech-pkg-ja netbsd.port-arm32-ja netbsd.port-hpcmips-ja netbsd.port-mac68k-ja netbsd.port-mips-ja netbsd.port-powerpc-ja netbsd.hpcmips-changes-ja netbsd.members-ja netbsd.admin-ja netbsd.www-changes-ja

Ruby Mailing List (http://blade.nagaokaut.ac.jp/)
     ruby.comp.lang.ruby ruby.fj.comp.lang.ruby ruby.ruby-dev ruby.ruby-ext ruby.ruby-list ruby.ruby-math ruby.ruby-talk

Toshiba Linux Users JP Mailing List (http://linux.toshiba-dme.co.jp/ML/tlinux-users-j/)
     toshiba.linux-users-j

w3m-dev Mailing List (http://mi.med.tohoku.ac.jp/~satodai/w3m-dev/)
     w3m-dev.w3m-dev w3m-dev.w3m-dev-en

digiko Mailing List (http://yar-3.net/digiko/)
     digiko.digiko

XEmacs Mailing List (http://list-archive.xemacs.org/)
     xemacs.xemacs-announce xemacs.xemacs-beta-ja xemacs.xemacs-beta xemacs.xemacs-build-reports xemacs.xemacs-cvs xemacs.xemacs-design xemacs.xemacs-mule xemacs.xemacs-nt xemacs.xemacs-patches xemacs.xemacs-users-ja xemacs.xemacs

セキュリティーMEMO Mailing List (http://memo.st.ryukoku.ac.jp/archive/)
     security-memo.memo security-memo.free-memo security-memo.social-memo

     なお、security-memo.* はアドレス回収ロボット対策で userid と passowrd を求められるので ~/.w3m/passwd に

          machine memo.st.ryukoku.ac.jp
          realm input username/password = archives/archives
          login archives
          passwd archives

          machine memo.st.ryukoku.ac.jp
          realm input user: archives / password: archives
          login archives
          passwd archives

     と書き、上記ファイルから group, others のアクセス権を取り除いておく必要があります。

Debian JP Mailing List (http://lists.debian.or.jp/)
     debian-jp.debian-announce debian-jp.debian-devel debian-jp.debian-www debian-jp.debian-users debian-jp.debian-policy debian-jp.jp-qa

Debian Mailing List (http://lists.debian.org/)
     debian.debian-announce debian.debian-commercial debian.debian-firewall debian.debian-french debian.debian-isp debian.debian-italian debian.debian-kde debian.debian-laptop debian.debian-news debian.debian-news-german debian.debian-news-portuguese debian.debian-security-announce debian.debian-testing debian.debian-user debian.debian-user-catalan debian.debian-user-french debian.debian-user-polish debian.debian-user-portuguese debian.debian-user-spanish debian.debian-user-swedish debian.debian-admintool debian.debian-apache debian.debian-autobuild debian.debian-beowulf debian.debian-boot debian.debian-cd debian.debian-ctte debian.debian-debbugs debian.debian-devel debian.debian-devel-announce debian.debian-devel-french debian.debian-devel-games debian.debian-devel-spanish debian.debian-doc debian.debian-dpkg debian.debian-emacsen debian.debian-events-eu debian.debian-events-na debian.debian-faq debian.debian-gcc debian.debian-glibc debian.debian-gtk-gnome debian.debian-hams debian.debian-ipv6 debian.debian-java debian.debian-jr debian.debian-med debian.debian-mentors debian.debian-newmaint debian.debian-newmaint-admin debian.debian-ocaml-maint debian.debian-openoffice debian.debian-perl debian.debian-pilot debian.debian-policy debian.debian-pool debian.debian-python debian.debian-qa debian.debian-qa-private debian.debian-release debian.debian-security debian.debian-snapshots debian.debian-tetex-maint debian.debian-toolchain debian.debian-vote debian.debian-wnpp debian.debian-www debian.debian-x debian.deity debian.debian-chinese debian.debian-chinese-big5 debian.debian-chinese-gb debian.debian-esperanto debian.debian-i18n debian.debian-japanese debian.debian-l10n-catalan debian.debian-l10n-dutch debian.debian-l10n-english debian.debian-l10n-french debian.debian-l10n-italian debian.debian-l10n-portuguese debian.debian-l10n-spanish debian.debian-laespiral debian.debian-russian debian.debian-simplified-chinese debian.debian-68k debian.debian-alpha debian.debian-arm debian.debian-bsd debian.debian-hppa debian.debian-hurd debian.debian-ia64 debian.debian-mips debian.debian-parisc debian.debian-powerpc debian.debian-s390 debian.debian-sparc debian.debian-superh debian.debian-ultralinux debian.debian-win32 debian.debian-all-changes debian.debian-alpha-changes debian.debian-arm-changes debian.debian-books debian.debian-cd-vendors debian.debian-changes debian.debian-consultants debian.debian-curiosa debian.debian-devel-all-changes debian.debian-devel-alpha-changes debian.debian-devel-arm-changes debian.debian-devel-changes debian.debian-devel-hurd-i386-changes debian.debian-devel-i386-changes debian.debian-devel-m68k-changes debian.debian-devel-powerpc-changes debian.debian-devel-sparc-changes debian.debian-hurd-i386-changes debian.debian-i386-changes debian.debian-legal debian.debian-m68k-changes debian.debian-mirrors debian.debian-powerpc-changes debian.debian-project debian.debian-publicity debian.debian-sgml debian.debian-sparc-changes debian.lcs-eng debian.lsb-confcall debian.lsb-discuss debian.lsb-impl debian.lsb-spec debian.lsb-test debian.spi-announce debian.spi-general debian.vgui-discuss

KDE Mailing List in Japan (http://www.kde.gr.jp/ml/)
     kde.Kuser kde.Kdeveloper

Geocrawler (http://www.geocrawler.com/)
     Geocrawler に保存されている全てのメーリングリストを閲覧できます。 M-x shimbun-geocrawler-add-group RET というコマンドを使って、閲覧したいグループを変数 shimbun-geocrawler-group-alist に登録してください。

Mailing list ARChives (http://marc.theaimsgroup.com/)
     Mailing list ARChives (MARC) に保存されている全てのメーリングリストを閲覧できます。閲覧したいグループのグループ名と URL を、変数 shimbun-marc-aims-group-alist に登録してください。

RedHat Mailing List (http://sources.redhat.com/ml/)
     redhat.automake redhat.bug-automake redhat.automake-prs redhat.automake-cvs redhat.binutils redhat.binutils-cvs redhat.c++-embedded redhat.crossgcc redhat.cgen redhat.cgen-prs redhat.cgen-cvs redhat.cygwin redhat.cygwin-xfree redhat.cygwin-announce redhat.cygwin-xfree-announce redhat.cygwin-apps redhat.cygwin-patches redhat.cygwin-developers redhat.cygwin-cvs redhat.cygwin-apps-cvs redhat.docbook-tools-discuss redhat.docbook-tools-announce redhat.docbook-tools-cvs redhat.docbook redhat.dssslist redhat.sgml-tools redhat.docbook-apps redhat.ecos-announce redhat.ecos-devel redhat.ecos-discuss redhat.ecos-maintainers redhat.ecos-patches redhat.elix redhat.elix-announce redhat.gdb redhat.gdb-announce redhat.gdb-testers redhat.gdb-testresults redhat.gdb-patches redhat.gdb-cvs redhat.bug-gdb redhat.gdb-prs redhat.libc-alpha redhat.libc-hacker redhat.bug-glibc redhat.glibc-cvs redhat.glibc-linux redhat.bug-gnats redhat.gnats-devel redhat.gnats-announce redhat.gnats-cvs redhat.gsl-discuss redhat.gsl-announce redhat.gsl-cvs redhat.guile redhat.guile-emacs redhat.guile-prs redhat.guile-gtk redhat.bug-guile redhat.guile-cvs redhat.guile-emacs-cvs redhat.insight redhat.insight-announce redhat.insight-prs redhat.installshell redhat.inti redhat.kawa redhat.libffi-discuss redhat.libffi-announce redhat.libstdc++ redhat.libstdc++-cvs redhat.libstdc++-prs redhat.mauve-discuss redhat.mauve-announce redhat.newlib redhat.pthreads-win32 redhat.rhdb redhat.rhdb-announce redhat.rhug-rhats redhat.rpm2html-cvs redhat.rpm2html-prs redhat.rpm2html redhat.sid redhat.sid-announce redhat.sid-cvs redhat.sourcenav redhat.sourcenav-announce redhat.sourcenav-prs redhat.win32-x11 redhat.xconq7 redhat.xconq-announce redhat.xconq-cvs

MacOSX JP Mailing List (http://www.tech-arts.co.jp/macosx/)
     macosx-jp.macosx-jp macosx-jp.macosx-dev-jp macosx-jp.macosx-ws-jp macosx-jp.webobjects-jp

SourceForge JP (http://sourceforge.jp)
     SourceForge JP に保存されているメーリングリストの全ての公開書庫を閲覧できます。閲覧したいグループを変数 shimbun-sourceforge-jp-mailing-lists に登録してください。

Elips Mailing List (http://heimat.jp/~nakaji/elips/)
     elips.elips

Squeak-ja Mailing List (http://lists.squeakfoundation.org/pipermail/squeak-ja/)
     squeak-ja.main

Smalltalkers' Salon Mailing List (http://www.sra.co.jp/smalltalk/SML/archives/)
     sml.main

Squeak-dev Mailing List (http://lists.squeakfoundation.org/pipermail/squeak-dev/)
     squeak-dev.main

Plucker Mailing List (http://www.mail-archive.com/plucker-*@rubberchicken.org/maillist.html)
     plucker.announce plucker.list plucker.dev

pilot-link Mailing List (http://www.pilot-link.org/pipermail/)
     pilot-link.announce pilot-link.devel pilot-link.general pilot-link.unix-ng

Coldsync Mailing List (http://www.thedotin.net/maillists/coldsync-hackers/maillist.html)
     coldsync.main

J-Pilot Mailing List (http://www.jpilot.org/pipermail/jpilot/)
     jpilot.main

pilot-mailsync Mailing List (http://lists.gnu-designs.com/pipermail/pilot-mailsync/)
     pilot-mailsync.main

Mozilla Users Mailing List in Japan (http://www.mozilla.gr.jp/ml/logs/moz-users/)
     mozilla-jp.users

     なお、mozilla-jp.users はアドレス回収ロボット対策で userid と passowrd を求められるので ~/.w3m/passwd に

          machine www.mozilla.gr.jp
          realm Please Enter mozilla mozilla
          login mozilla
          passwd mozilla

     と書き、上記ファイルから group, others のアクセス権を取り除いておく必要があります。

tDiary Developers Mailing List in Japan (http://www.tdiary.org/)
     tdiary-ml.devel tdiary-ml.theme

arch.bluegate.org Mailing Lists (http://arch.bluegate.org/mailman/listinfo)
     arch-bluegate.subversion-jp arch-bluegate.arch-jp arch-bluegate.mailman arch-bluegate.viewarch

Tigris.org:Open Source Software Engineering (http://www.tigris.org/)
     Tigris.org に保存されている全てのメーリングリストを閲覧できます。閲覧したいグループを変数 shimbun-tigris-group-alist に登録してください。グループ名は tigris.<project>.<mailinglist> になります。

www.SciPy.net Mailing Lists (http://www.scipy.net/mailman/listinfo)
     scipy.astropy scipy.ipython-user scipy.ipython-dev scipy.scipy-user scipy.scipy-dev scipy.scipy-testlog scipy.scipy-chaco scipy.scipy-cvs

スポーツ
----

Shimbun ライブラリが対応しているスポーツ関係のサイトです。

makanai (http://www.makanai.com/)
     makanai.f1news

F1 ファン (http://www.ksky.ne.jp/~tahara/f1/)
     f1fan.news

@nifty:モータースポーツ (http://forum.nifty.com/fmotor/)
     msports-nifty.F1 msports-nifty.IRL msports-nifty.WRC msports-nifty.Europe msports-nifty.USA

Yahoo!スポーツ (http://sports.yahoo.co.jp/)
     yahoo-sports.F1 yahoo-sports.baseball yahoo-sports.keiba yahoo-sports.NBA yahoo-sports.NFL yahoo-sports.rugby

ただし、Emacs-21.4 またはそれ以前の版で @nifty: モータースポーツを閲覧するには、Mule-UCS (see Other Requirements) が必要です。

その他
---

Shimbun ライブラリの対応しているその他のサイトです。掲示板や、連載記事を主体とするようなサイトが含まれています。

Tea Cup 掲示板 (http://www.tcup.com/)
     Tea Cup Communication によって提供される、様々な掲示板を講読することができます。デフォルトでは、以下の三つの掲示板が用意されています。

     tcup.meadow
          Meadow 掲示板 (http://www66.tcup.com/6629/yutopia.html)

     tcup.skk
          SKK 掲示板 (http://www67.tcup.com/6718/yutopia.html)

     tcup.yutopia
          ゆうτοπια掲示板 (http://www61.tcup.com/6116/yutopia.html)

     新たに掲示板をリストに追加するには、それらの名前と URL を調べて、 shimbun-tcup-group-alist を変更して下さい。二つの掲示板 foo と bar を追加する例です。

          (eval-after-load "sb-tcup"
            '(setq shimbun-tcup-group-alist
                   (append
                    '(("foo" "http://MMMM.teacup.com/foo/bbs2")
                      ("bar" "http://NNNN.teacup.com/bar/bbs2"))
                    shimbun-tcup-group-alist)))

2ch
     グループ名と URL を調べて、以下のように設定して使います。

          (setq shimbun-2ch-group-alist
                '(("Meadow" .
                   "http://pc.2ch.net/test/read.cgi/software/1005469775")
                  ("emacs-w3m" .
                   "http://pc.2ch.net/test/read.cgi/unix/1013710106")))

CGI_Board を使っている掲示板 (http://www.math.tohoku.ac.jp/~kuroki/support/)

     CGI_Board を使っている掲示板の URL を調べて、 shimbun-cgi-board-group-alist に適切な設定を加えて使います。

HNS による日記
     閲覧したい日記の URL を調べて、以下のように設定して使います。

          (setq shimbun-hns-group-alist
                '(("arisawa"                           ;; グループ名
                   "http://www.nijino.com/ari/diary/"  ;; URL
                   "ari@mbf.sphere.ne.jp")             ;; メールアドレス
                  ("miyoshi"
                   "http://www.be.wakwak.com/cgi-bin/sbox/~miyoshi/hns/"
                   "miyoshi@meadowy.org")))

tDiary による日記
     閲覧したい日記の URL を調べて、以下のように設定して使います。

          (setq shimbun-tdiary-group-alist
                '(("henahena"                          ;; グループ名
                   "http://www.fan.gr.jp/~ring/d/")    ;; URL
                  ("yoichi"
                   "http://yoichi.geiin.org/d/")))

chalow による日記
     閲覧したい日記の URL を調べて、以下のように設定して使います。

          (setq shimbun-chalow-group-alist
                '(("yto"                               ;; グループ名
                   "http://nais.to/~yto/clog/"         ;; URL
                   "yto@nais.to")                      ;; メールアドレス
                  ))

楽天広場 (http://plaza.rakuten.co.jp/) の日記
     閲覧したい日記を開設している人の楽天 ID とメールアドレスを調べて、以下のように設定して使います。

          (setq shimbun-rakuten-group-alist
                '(("rakuten-id" . "email-address")))

EmacsWiKi (http://www.emacswiki.org/)
     emacswiki.changes emacswiki.diff

コンテンツを含む RSS フィード
     閲覧したい掲載コンテンツが含まれるような RSS フィードを調べて、 shimbun-rss-hash-group-path-alist 変数を以下のように設定して使います。バックエンド名は rss-hash です。主に個人のブログなどが対象になるでしょう。

     パラメータはグループ名、RSS アドレス、メールタイプ(t で html)、整形時の開始正規表現、整形時の終了正規表現となります。グループ名、RSS アドレス以外はオプションです。

     以下はサンプルです。この場合は rss-hash.sampleblog1 および rss-hash.sampleblog2 として閲覧できます。

          (setq shimbun-rss-hash-group-path-alist
                '(;; text mail
                  ("sampleblog1" "http://www.example.com/index1.rss")
                  ;; html mail
                  ("sampleblog2" "http://www.example.com/index2.rss"
                   t "</title>" "<!-- start ads")))

コンテンツを含む Atom フィード
     前項 (コンテンツを含む RSS フィード) と同様に、掲載されたコンテンツを含む Atom フィードも閲覧することができます。それを行なうには、 shimbun-rss-hash-* と同様のやり方で変数 shimbun-atom-hash-group-path-alist (ひょっとすると shimbun-atom-hash-x-face-alist なども) を設定して下さい。バックエンド名は atom-hash です。

Wiki コンテンツ
     閲覧したい Wiki の URL を調べて、以下のように設定して使います。 PukiWiki と Hiki に対応しています。もし、各内側のリストの 4 番目、5 番目の要素の正規表現に何を指定して良いか分からないときは、nil を指定すれば良いでしょう。記事の取得時に整形が行われず、ただページ全体が見えるだけです。

          (setq shimbun-wiki-group-alist
                '(("pukiwiki" ;; グループ名
                   "http://pukiwiki.org/index.php?cmd=rss10" ;; URL
                   "webmaster@pukiwiki.org" ;; メールアドレス
                   nil ;; X-Face
                   "\n<h3 id=\"" ;; contents の start を示す regexp
                   "</address>") ;; contents の end を示す regexp
                  ("hiki"
                   "http://www.namaraii.com/hiki/?c=rss"
                   "webmaster@fdiary.net"
                   nil
                   "<div class=\"section\">"
                   "<div class=\"sidebar\">")
                  ("apollo"
                   "http://wiki.fdiary.net/apollo/?c=rss"
                   "moriq@moriq.com"
                   nil
                   "<div class=\"section\">"
                   "<div class=\"sidebar\">")
                  ))

Yahoo!オークション (http://auctions.yahoo.co.jp/)
     閲覧したいカテゴリや検索結果の URL を調べて、以下のように設定して使います。

          (setq shimbun-yahoo-auctions-group-alist
                '(("mp3player" . "http://list3.auctions.yahoo.co.jp/jp/show/catleaf_rss?category=2084039708&alocale=0jp")
                  ("iPod" . "http://search3.auctions.yahoo.co.jp/search_rss?p=iPod&auccat=2084039708&alocale=0jp&acc=jp")))

VineLinux Errata (http://www.vinelinux.org/)
     vinelinux.errata.4x.i386 vinelinux.errata.4x.ppc vinelinux.errata.3x.i386 vinelinux.errata.3x.ppc vinelinux.errata.3x.alpha vinelinux.errata.2x.i386 vinelinux.errata.2x.ppc vinelinux.errata.2x.sparc vinelinux.errata.2x.alpha vinelinux.errata.1x

阿部内閣メールマガジン (http://www.kantei.go.jp/)
     kantei.m-magazine-en kantei.m-magazine-ja kantei.m-magazine-ja.koizumi

     後方互換性のため、kantei.m-magazine も利用可能になっています。

特許庁 (http://www.jpo.go.jp/)
     jpo.news jpo.revision jpo.lawguide jpo.details

IBM developerWorks (http://www-6.ibm.com/jp/developerworks/)
     ibm-dev.autonomic ibm-dev.java ibm-dev.linux ibm-dev.opensource ibm-dev.webservices ibm-dev.xml

Pocketgames (http://www.pocketgames.jp/)
     pocketgames.news

Wincefan (http://www.wince.ne.jp/)
     wincefan.news

PalmFan (http://www.palmfan.com/)
     palmfan.news

電脳街の現場レポート (http://homepage1.nifty.com/akiba/plat.html)
     dennou.report

PCWEB COLUMN Square (http://pcweb.mycom.co.jp/column/)
     pcweb-column.architecture pcweb-column.asia pcweb-column.benri pcweb-column.bytes pcweb-column.ebook pcweb-column.game pcweb-column.hitech pcweb-column.itshihonron pcweb-column.java pcweb-column.jisakuparts pcweb-column.kaden pcweb-column.nihongoprog pcweb-column.objc pcweb-column.osx pcweb-column.rikei pcweb-column.scramble pcweb-column.sopinion pcweb-column.svalley pcweb-column.toolexp pcweb-column.winxp pcweb-column.yetanother

ノーツ陳列館 (http://tsuruo.dominohosting.biz/members/tsuruo/)
     lotusex.news lotusex.library lotusex.operation lotusex.primer lotusex.tips lotusex.practical lotusex.qanda lotusex.lounge lotusex.bbs

＠ITフォーラム (http://www.atmarkit.co.jp)
     atmarkit.news atmarkit.fwin2k atmarkit.fdotnet atmarkit.fsys atmarkit.fxml atmarkit.fdb atmarkit.flinux atmarkit.fnetwork atmarkit.fjava atmarkit.fsecurity atmarkit.farc atmarkit.fbiz atmarkit.fwcr atmarkit.jibun

TeX Q&A 掲示板 (http://www.matsusaka-u.ac.jp/~okumura/texfaq/qa/)
     texfaq.qanda

X51.org (http://x51.org/)
     x51.anima x51.art x51.auction x51.blow x51.cabal x51.crime x51.disaster x51.edge x51.enema x51.ghost x51.homme x51.info x51.life x51.love x51.media x51.medical x51.military x51.northkorea x51.oparts x51.phallic x51.psychics x51.religion x51.science x51.top x51.ufo x51.uma x51.xfiles

eXperts Connection (eXConn) (http://www.exconn.net/)
     exconn.news

MSDN (http://msdn.microsoft.com/)
     msdn.all msdn.netframework msdn.architecture msdn.asp.net msdn.data msdn.longhorn msdn.mobility msdn.subscriptions msdn.msdntv msdn.office msdn.security msdn.sql msdn.theshow msdn.vbasic msdn.vcsharp msdn.visualc msdn.vfoxpro msdn.vjsharp msdn.vstudio msdn.vs2005 msdn.webservices msdn.embedded msdn.xml msdn.japan.msdn msdn.japan.msdn-us

Haiku OS (http://haiku-os.org/)
     haiku-os.news haiku-os.forums haiku-os.newsletters

Foundation for a Free Information Infrastructure (http://www.ffii.org/)
     ffii.en.software-patents ffii.en.software-patents.ffii ffii.en.information-infrastructure ffii.en.project ffii.de.software-patente ffii.de.software-patente.ffii ffii.de.informations-infrastruktur ffii.fr.brevets-logiciels ffii.fr.brevets-logiciels.ffii ffii.nl.softwarepatenten ffii.nl.softwarepatenten.ffii

フォーラム@nifty (http://bbs.com.nifty.com/mes/)
     nifty-forum.fphys12 nifty-forum.fphys13 nifty-forum.fphys14 nifty-forum.fphys15 nifty-forum.fphys16 nifty-forum.fphys17 nifty-forum.fphys18 nifty-forum.fphys24 nifty-forum.fphys25 nifty-forum.fsci01 nifty-forum.fsci04 nifty-forum.fsci09 nifty-forum.fsci10 nifty-forum.fsci11 nifty-forum.fsci17 nifty-forum.fsci18 nifty-forum.fsci20 nifty-forum.fsci21 nifty-forum.fsci23 nifty-forum.fsci26 nifty-forum.fsci27 nifty-forum.fsci28 nifty-forum.fsci29 nifty-forum.fsci30 nifty-forum.fsci31 nifty-forum.fsci32 nifty-forum.fsci34 nifty-forum.fsci35 nifty-forum.fsci36 nifty-forum.fsci37

新聞モジュールの作り方
===========

Shimbun は emacs-w3m の付属ライブラリで、Gnus や Wanderlust、 Mew などの MUA を利用し、ウェブコンテンツをメールと同じユーザインターフェースで読むことを可能にするものです。ここでは shimbun モジュールを作成する典型的な方法を説明します。

概略
--

http://www.foobar.net のコンテンツを閲覧する新たな shimbun モジュール foobar を作成するとして、まず最初に貴方がしなればならないことは、sb-foobar.el の冒頭に

     (require 'shimbun)
     (luna-define-class shimbun-foobar (shimbun) ())

のような宣言を入れておくことです。徐々に分かると思いますので、今はおまじないと思っておいて下さい。注意すべきことは、shimbun モジュールを入れるファイル名の sb-foobar.el の foobar の名前と、 luna-define-class  の第一引数の shimbun-foobar の foobar の名前は合わせておく必要があることです。

Shimbun モジュール shimbun-foobar がこなすべき仕事は大きく四つあります (あなたが Gnus のユーザならば、「フォルダ」を「グループ」に読み換えて下さい):

 1. MUA が foobar フォルダを開いたら、記事の標題などをリストアップするために http://www.foobar.net からウェブページのソースを取得すること。

 2. 取得したウェブページのソースに対し、記事の見出しに必要ないくつかの情報とともに取得して、headers というリストに代入して返すこと。

 3. MUA が foobar フォルダの記事の閲覧を要求したら、実際の記事内容を記載したウェブページのソースを (例えば http://www.foobar.net/030530.html から) 取得すること。

 4. http://www.foobar.net/030530.html から取得したウェブページのソースを、必要に応じ閲覧しやすいように整形すること。

最初の作業は shimbun.el の shimbun-headers が、二番目の作業は shimbun-get-headers が担当します。そして三番目の作業は shimbun-article が、最後の作業は shimbun-make-contents が担当します。

shimbun.el の中をご覧下さい。defun による関数定義の他に、見慣れない luna-define-generic, luna-define-method などの宣言がありますよね。どうも使用方法は defun のそれと似ているようです。そして、前者は何だか doc-string だけを書いてあるようで、同名のシンボルについて後者によって再度宣言しているように見えます。更に、あるシンボルについて、luna-define-generic の宣言だけがあって、 luna-define-method の宣言がないものもあります。

実は、shimbun.el 及び各 shimbun モジュールは、 Emacs Lisp にてオブジェクト指向プログラミングを可能とする luna.el (FLIM に含まれています。) を利用して書かれています。

shimbun.el の中では、shimbun-headers がある URL のウェブページのソースを取得し、shimbun-get-headers がそのウェブページのソースから標題などを抜き出し... という前述の手順がハードコーディングされています。しかし、決め打ちするだけでは、千差万別のウェブページのソースを、その構造に合わせて変化させることができません。

そこで luna により、メソッドがコールされる手順だけ決めておいて、 shimbun により変化させるべきメソッドの実体定義を各 shimbun モジュールに任せているのです。各 shimbun モジュールで共通で使えそうなメソッドは shimbun.el の中にメソッドの実体も定義してありますが、それすら各 shimbun モジュールにおいて再定義をすることが可能です。

もうお分かりのように、luna-define-generic は、言わば殼だけの宣言、 luna-define-method は shimbun モジュール毎に作成できる実体の宣言。そして sb-foobar.el の冒頭に入れた luna-define-class での宣言は、luna 上での新たなクラスの宣言だったわけです。

ウェブページのソース及びヘッダ情報を取得する
----------------------

まず記事見出しを取得する対象となるウェブページを決めることから始めます。フレーム表示されている場合は、フレームの中で必要なページだけを単独で指し示す URL を特定するべきです。特定できたら、新たに作成する shimbun モジュールの中で luna-define-method を使い、 shimbun-index-url の定義を作成しましょう。単純に URL を返すようにすれば良いですよ。後で説明しますので、変数 shimbun-foobar-groups も用意しておきましょう (Shimbun モジュール一つにつき、最低でも一つのグループが必要です。)。

     (defvar shimbun-foobar-url "http://www.foobar.net")

     (luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
       shimbun-foobar-url)

     (defvar shimbun-foobar-groups '("news"))

shimbun-headers メソッドは shimbun.el の中に既に定義されていますから、sb-foobar.el で shimbun-index-url メソッドの定義を作成すればウェブページのソースの取得ができるようになります。 shimbun-headers はウェブページのソースを取得した後、 shimbun-get-headers メソッドを呼び、ヘッダ情報の収集に入ります。 shimbun.el の中には shimbun-get-headers のメソッド宣言がありせんから、sb-foobar.el の中で独自にメソッドを作成しなければなりません。

sb-foobar.el に shimbun-get-headers のメソッドを作成するために、取得したページのソースを分析しましょう。どのような正規表現で記事のヘッダ情報を収集するかを検討します。記事の見出しとして特に必要な情報は、標題、日付、作成者、その記事の URL、そして message-id です。これらの情報は、それぞれの MUA において、Subject, Date, From, Xref, Message-ID として表示されます。例えば、下記の

     <a href="030530.html">5月30日の話題(投稿者-みきお &lt;foo@bar.net&gt;)</a>

のような行を集めて記事にしたいのでしたら、

     "<a href=\"\\(\\([0-9][0-9][0-9][0-9]\\)[0-9][0-9]\\.html\\)\">\\([^<(]+\\)(投稿者-\\([^<]+\\))<\/a>"

のような正規表現になるでしょう。そして記事の Xref の値は (match-string 1) で取得できます、Date は (match-string 2) の値を加工すれば良いでしょう。Subject は (match-string 3) で取得できますね。From は (match-string 4) を加工すれば良いでしょう。これらの値は MUA で見易いように更に加工しても構いません。

上記のように記事の URL が相対パス表示されている場合は、 shimbun-expand-url を使用し、絶対パス表示に変更してからヘッダに収めましょう。記事の URL がヘッダの URL と同じ、つまり記事毎に個別に URL を持たない構造のウェブページもあります。この場合は少しやっかいで、ヘッダ情報取得の段階で、記事の内容も取得しておき、Emacs のメモリに収めておく必要があります。具体的には sb-palmfan.el, sb-dennou.el, sb-tcup.el の shimbun-headers メソッドの定義を参照して下さい。

ウェブページによっては Date が特定できないものがあります。そういう場合は無理に特定せずとも "" を入れておけば OK です。記事の内容を見て初めて Date が特定できるなら、shimbun-make-contents メソッドの中で改めてヘッダに Date の情報を入れても OK です。それから、From を決め打ちしても良い場合もあります。

message-id の作成には注意を要します。一部の記事が読めなかったりしますので (shimbun の一部の記事が読めないだけならまだしも、下手に message-id を作成すると、貴方が受領する大事なメールのそれとかち合ってしまい、そのメールが読めなくなる可能性すらあります。)、必ず単一性 (uniqueness) を保証しなければなりません。日付やドメイン、そのページの URL の一部を使って文字列を生成することで単一性を確保しましょう。その他、message-id の一部に必ず @ を含めるようにし、逆に : は含まないようにしましょう。このルールを守らないとインライン画像がきちんと出力されませんよ。詳しくは RFC2387, RFC822 を参照して下さい。

苦労して取得したこれらの情報は shimbun-create-header という関数を利用してヘッダに収めます。

結局 sb-foobar.el の中での shimbun-get-headers の定義の骨組みはこんな風になりますね。

     (luna-define-method shimbun-get-headers ((shimbun shimbun-foobar)
                                              &optional range)
       (let ((regexp "....")
             subject from date id url headers)
         ...
         (catch 'stop
           (while (re-search-forward regexp nil t nil)
             ...
             (when (shimbun-search-id shimbun id)
               (throw 'stop nil))
             (push (shimbun-create-header
                    0 subject from date id "" 0 0 url)
                   headers)))
         headers))

なお、このメソッドの中では shimbun という一時変数で、 shimbun モジュール shimbun-foobar のインスタンスにアクセスできます。

ところで、先程保留にした変数 shimbun-foobar-groups について説明しましょう。

仮に http://www.foobar.net の中に読みたい記事グループが二つあって、それぞれの記事のヘッダ情報を得るウェブページが別々の場所にあったとしましょう。http://www.foobar.net/whatsnew/index.hmtl にサイトの更新情報が、http://www.foobar.net/ml/index.html に ML の記事アーカイブの一覧があるときなどです。こういう場合は、shimbun モジュール foobar のグループとして、foobar.whatsnew, foobar.ml としてアクセスできると便利ですよね。そういう場合は下記のようにしてみましょう。

     (defvar shimbun-foobar-url "http://www.foobar.net")

     (defvar shimbun-foobar-group-path-alist
       '(("whatsnew" . "/whatsnew/index.html")
         ("ml" . "/ml/index.html")))

     (defvar shimbun-foobar-groups
       (mapcar 'car shimbun-foobar-group-path-alist))

     (luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
       (concat shimbun-foobar-url
               (cdr (assoc (shimbun-current-group-internal shimbun)
                           shimbun-foobar-group-path-alist))))

現在ユーザがアクセスしているグループには shimbun-current-group-internal を使えば分かります。 shimbun-get-headers などでもグループが違えば作業内容が違ってくる可能性もありますね。

なお、shimbun モジュール一つにつき、最低でも一つのグループが必要です。グループの名前の決め方に特に決まりはありませんが、グループ名に悩んだら、news とか main などと付けておきましょう。

記事の表示
-----

shimbun.el に定義された shimbun-article メソッドは、ヘッダ情報から Xref を取り出し、その URL のウェブページのソースを取得した後に、そのソースを入れたワーキングバッファの中で shimbun-make-contents を呼びます。具体的な記事の加工は shimbun-make-contents の仕事です。

記事となるウェブページのソースが、どばっとワーキングバッファにぶちまけられていると想像して下さい。shimbun.el の標準の shimbun-make-contents は、そのバッファの先頭にまずヘッダ情報を挿入し、その直後に <html> や <body> などを、また、バッファの末尾に </body>, </html> を挿入してくれます。そうやって HTML メールとして表示させるのです。

     HTML の記事だけでなく、text/plain 形式の記事が生成されるようにすることもできます。See Making text/plain articles.

記事を何も加工する必要がなければ sb-foobar.el の中では shimbun-make-contents について新たに定義する必要はありません。

単純に記事の前後に捨てたい部分があるだけならば、 shimbun-foobar-content-start, shimbun-foobar-content-end に捨てたい部分を検索可能な正規表現を指定しておきましょう。

     (defvar shimbun-foobar-content-start "^<body>$")
     (defvar shimbun-foobar-content-end "^<\/body>$")

標準の shimbun-make-contents から呼び出された shimbun-clear-contents は、これらの正規表現を利用して、point-min から shimbun-foobar-content-start まで、 shimbun-foobar-content-end から point-max までを切り捨ててくれますよ。但し、これら二つのマッチはいずれかが成功しないと切り捨ては行われませんので注意が必要です。

広告などの不要な情報があって、それを細かく検索して捨てたい場合は、 sb-foobar.el の中で独自の shimbun-clear-contents を定義しておきます。

     (luna-define-method shimbun-clear-contents :around ((shimbun shimbun-foobar)
                                                         header)
       ;; cleaning up
       (while (re-search-forward "..." nil t nil)
         (delete-region (match-beginning 0) (match-end 0)))
       (luna-call-next-method))

より具体的な方法は、sb-ibm-dev.el が参考になるかもしれません。

先程、Getting web page and header information の節で、記事毎に個別に URL を持たない構造のウェブページの場合、ヘッダ情報取得の段階で、記事の内容も取得しておき、Emacs のメモリに収めておく必要があると申し上げました。この場合、shimbun-article では上記のような Xref 情報からの web page の取得は必要になりませんので、ただ Emacs のメモリから取り出して、バッファに整形して挿入すれば足ります。具体的には sb-palmfan.el, sb-dennou.el, sb-tcup.el の shimbun-article メソッドの定義を参照して下さい。

Shimbun モジュールの継承
----------------

メーリングリストマネージャ (アーカイバ) として有名なものがいくつかあります。

  * Mailman

     The GNU Mailing List Manager. 以前は pipermail と呼ばれていました。詳細は http://www.gnu.org/software/mailman/index.html をご覧下さい。

  * MHonArc 詳細は http://www.oac.uci.edu/indiv/ehood/mhonarc.html をご覧下さい。

  * fml fml mailing list server/manager.  詳細は http://www.fml.org/software/fml/ をご覧下さい。

  * mailarc 詳細は http://cvs.namazu.org/mailarc/ をご覧下さい。

貴方が Getting web page and header information のステップで取得したウェブページのソースを分析しているときに、そのソースの中にこれらメーリングリストマネージャの名前を見つけたら (ウェブページのソースの中にこれらメーリングリストマネージャの名前が表示されていることが多いです。)、それはすごくラッキーなことです。sb-mailman.el, sb-mhonarc.el, sb-fml.el, sb-mailarc.el に既に shimbun-get-headers などの必要なメソッドが定義されています。これらを利用してなお足りない部分だけの差分プログラミングをすれば、貴方の sb-foobar.el は早速動きます。

例えば sb-mailman.el を利用するなら sb-foobar.el の冒頭は、

     (require 'sb-mailman)
     (luna-define-class shimbun-foobar (shimbun-mailman) ())

こんな風になります。これで shimbun モジュール shimbun-foobar は shimbun-mailman クラスを継承し (つまり shimbun-mailman クラスが親クラスになります。)、 shimbun-foobar の中では、sb-mailman.el の中で定義されているメソッドが標準で使用されることとなります (更にメソッドの一部を上書きすることも可能です)。

sb-mailman.el を実際に利用したサンプルとして、 sb-pilot-mailsync.el などをご覧下さい。如何に楽ができるかがお分かりになるでしょう。

気を付けることが一つあるとすれば、これらのメーリングリストマネージャの中には地域化 (localize) されて、例えば日付表示を日本語で行うように改造されているものがあることです。sb-mailman.el, sb-mhonarc.el, sb-fml.el, sb-mailarc.el はいずれも標準の、英語版のものに対応しています。これら地域化されたメーリングリストマネージャを利用しているウェブサイトを shimbun で読みたいときは、いくつかのメソッドを上書きしなければならないかもしれません。

text/plain の記事を作るには
-------------------

たとえ MUA が HTML の記事を読むことができるように emacs-w3m によって強化されていても、いくつかの場合には text/plain の記事が便利なこともあるかもしれません。sb-foobar モジュールに text/html ではなくて text/plain の記事を作らせるには、二つの方法があります。

  * 一つは sb-foobar モジュールに sb-text モジュールを継承させる (see Inheriting shimbun module) ことです。以下は sb-foobar モジュールの冒頭に置くことができる例です。

          (require 'sb-text)
          (luna-define-class shimbun-foobar (shimbun-text) ())

     sb-text モジュールは、text/plain 形式で記事を生成する shimbun-make-contents メソッドを提供します。テキストだけの記事を掲示するサイトを扱う shimbun モジュールには、役に立つでしょう。

  * もう一つは、変数 shimbun-foobar-prefer-text-plain を非-nil に設定することです。これは shimbun-make-contents メソッドに、text/plain 形式で記事を生成させます (実際には、それは sb-text モジュールが提供する関数を使います)。これは、デフォルトの shimbun-make-contents を継承するモジュールだけに効果があることに注意して下さい (特に sb-text モジュールを継承するモジュールは、影響されません)。この方式の利点は、ユーザが簡単に text/plain の記事と text/html の記事を切り替えることができることです。

     それが未定義である場合、変数 shimbun-foobar-prefer-text-plain のデフォルト値は nil です。したがって、sb-asahi.el および sb-yomiuri.el 以外のあらゆる shimbun モジュールにおいて、そのデフォルト値は nil です。

     加えて、web ページから意味のあるテキストを切り出すために、変数 shimbun-foobar-content-start および shimbun-foobar-content-end の代わりに、 shimbun-foobar-text-content-start および shimbun-foobar-text-content-end を使うことができます (see Displaying an article)。前者が未定義だったら、それらの値はデフォルトで後者の値になります。

どちらの方式を使うにしても、text/plain の記事は、画像やリンクなどを含むことができないことに注意して下さい。

Shimbun ライブラリのコーディング規約
----------------------

  * shimbun.el では、emacs-w3m の関数を自由に使って良い。

  * sb-*.el では、これまでと同様に emacs-w3m の関数を直接呼び出すことはしない。sb-*.el で必要になる emacs-w3m の関数については shimbun.el にスタブを用意する。

  * SpeedBar で利用されているファイル名は避けなければならない。 speedbar-0.14beta4 で用いられているファイル名を以下に示す。

     sb-ant.el   sb-html.el   sb-info.el   sb-texinfo.el
     sb-gud.el   sb-image.el   sb-rmail.el   sb-w3.el

  * 参照している WEB サーバの URI を連想させるようなファイル名を選ぶべきである。ただし、曖昧にならない範囲で、国別コード (Ex. jp,de,uk,etc) や、組織コード (Ex. edu,com,org,net,etc)、余分な部分 (Ex. www) を取り除いても良い。

  * グループ名には USENET に似た形式のものを選ぶべきである。すなわち、グループ名には小文字が好まれる。また、グループの階層構造を表すための区切り文字としては、ピリオド (.) が好まれる。

Emacs-w3m を使う洒落た小物たち
********************

他の Emacs の応用機能とともに emacs-w3m を便利に使うためのヒント集です。

  * browse-url

     browse-url の機能とともに emacs-w3m を使うことができます。例えば、以下の行を ~/.emacs ファイルに入れて下さい:

          (setq browse-url-browser-function 'w3m-browse-url)
          (global-set-key "\C-xm" 'browse-url-at-point)

     こうすることによって、Emacs のどのバッファでも、URL のような文字列の上で C-x m キーをタイプすると、emacs-w3m が起動されます。加えて、 C-c C-v キーをタイプすることによって、まさに編集中の HTML ファイルを emacs-w3m で下見 (preview) することができます (HTML ファイルの編集に、 Emacs と html-mode メジャーモードを使う必要があります)。

     Emacs-w3m のバッファにいるときに、C-x m キーをタイプすることによって、emacs-w3m の代わりに他のウェブブラウザを使いたい場合は (そんなことをしたい人がいるのかな?)、以下のアドバイスを ~/.emacs ファイルに加えて下さい:

          (defadvice browse-url-at-point
            (around change-browse-url-browser-function activate)
            "Use Netscape only when it is invoked in an emacs-w3m buffer."
            (let ((browse-url-browser-function
                   (if (eq major-mode 'w3m-mode)
                       'browse-url-netscape
                     'w3m-browse-url)))
              ad-do-it))

  * dired

     dired のバッファで C-x m キーをタイプすることによって、 emacs-w3m を使って HTML ファイルを閲覧することができます。 ~/.emacs ファイルで、以下の設定を使って下さい:

          (eval-after-load "dired"
            '(define-key dired-mode-map "\C-xm" 'dired-w3m-find-file))

          (defun dired-w3m-find-file ()
            (interactive)
            (require 'w3m)
            (let ((file (dired-get-filename)))
              (if (y-or-n-p (format "Use emacs-w3m to browse %s? "
                                    (file-name-nondirectory file)))
                  (w3m-find-file file))))

  * hnf-mode

     ハイパー日記システムと emacs-w3m を使って、最新の日記を見ることができます。以下の行を ~/.emacs ファイルに入れて、hnf-mode のバッファで C-c C-b キーをタイプして下さい:

          (defun w3m-hnf-browse-url-w3m (url &optional new-window)
            (interactive (browse-url-interactive-arg "URL: "))
            (save-selected-window
              (pop-to-buffer (get-buffer-create "*w3m*"))
              (w3m-browse-url url new-window)))
          (setq hnf-browse-url-browser-function #'w3m-hnf-browse-url-w3m)

  * Gnus

     あなたが Gnus のユーザで、この項がこの Info で初めて読むベージであるのならば、あなたは入り口を間違えましたね。最初に Hooking into MUAs を見て下さい。

     デフォルトでは、Gnus は例えば gnus-treat-strip-banner のような treatment 変数を text/html パートに適用しません。自動的に行なわせるには二つの方法があります:

          ;; すべての treatment を text/html パートに適用する。
          (eval-after-load "gnus-art"
            '(add-to-list 'gnus-article-treat-types "text/html"))

          ;; 特定の treatment を text/html パートに適用する。
          (setq gnus-treat-strip-banner '(or t (typep "text/html")))

     詳しいことは see Customizing Articles (The Gnus Manual), を見て下さい。

     加えて、以下の実験的なコードは multipart/related な絵を見るためのものです。表示される場所に難があります。

          (eval-after-load "gnus-art"
            '(or (assoc "multipart/related" gnus-mime-multipart-functions)
                 (setq gnus-mime-multipart-functions
                       (cons
                        (cons
                         "multipart/related"
                         (byte-compile
                          (lambda (handle)
                            (gnus-mime-display-mixed (cdr handle)))))
                        gnus-mime-multipart-functions))))

  * yahtml-mode

     Emacs-w3m を使って、yahtml-mode でまさに編集中の HTML ファイルを下見 (preview) することができます。例です:

          (defadvice yahtml-browse-html
            (around w3m-yahtml-browse-html activate compile)
            (w3m-goto-url (ad-get-arg 0) t))

  * jisx0213

     Emacs では Mule-UCS パッケージに含まれている jis0213 モジュールを使うことによって、JIS X 0213 文字セットを使うことができます。Emacs 21 以上では decode-char 関数が mucs によって上書きされてしまう (jis0213 が mucs を読み込む) ために、ucs CCS に対して正しく動作しなくなってしまいますが、さらに unicode モジュールを読み込むことによって、その問題が解決されるように見えるという報告がありました。理由はまだ解明されていません。~/.emacs ファイル用の例です:

          (require 'unicode)
          (require 'un-define)
          (require 'jisx0213)

メーリングリスト、バグリポート
***************

Emacs-w3m に関するすべてのことがらを話し合うためのメーリングリストが用意されています。講読していない人も投稿できます。バグを見つけたり、こんな機能が欲しいなと思ったり、あるいはコードを書きましたという人はどうぞ投稿して下さい。単なるユーザだけれどもプログラムに興味があるという人も、ぜひ参加して下さい。アドレスは以下の通りです:

     Emacs-w3m メーリングリスト <emacs-w3m@namazu.org>

もし mail-user-agent を正しく動作するように設定してあれば、 report-emacs-w3m-bug コマンド (または C-c C-b キー) を使ってバグリポートを送ることもできます。

このリストに投稿するときは、日本語か英語を使って下さい。多くのメンバーは日本人です。投稿された記事は公開されていて、ウェブ (http://emacs-w3m.namazu.org/ml/) や NetNews (サーバ news.gmane.org 上の gmane.emacs.w3m というグループ) でも読むことができます。

このリストのメッセージをメールで受け取りたい人は、本文に

     subscribe ANATANO Namae

のように書いて (メールアドレスではなくてあなたの名前を書きます)、 emacs-w3m-ctl@namazu.org 宛にメールを送るとメーリングリストに登録されます。また、メールを受け取るのをやめるには、本文に

     # bye

と書いたメールを emacs-w3m-ctl@namazu.org 宛に送って下さい。

Emacs-w3m の関数の詳しい説明
*******************

お仲間のパッケージたち
***********

Emacs-w3m は潤沢な機能を提供しますが、さらに便利にするために以下の外部パッケージを使うのも良いかもしれません。

  * w3m-session.el

     w3m-session.el は、emacs-w3m による閲覧のためのセッションを恒久的にする機能を提供します。これを使うと、Emacs-w3m を終わるときに、現在のセッション (すなわち、開いているタブと読んでいる URLs) をセーブすることができます。emacs-w3m を再開すると、セーブしたセッションを回復することができるでしょう。

     w3m-session.el のダウンロード: http://www.emacswiki.org/elisp/wthreem-session.el

  * w3m-type-ahead.el

     w3m-type-ahead.el パッケージは ``type ahead'' 検索機能 (Mozilla ブラウザに同じ名前の似た機能があります) を提供します。それは isearch に似た操作でアンカーを探すこと (ただし結果はバッファ内のアンカーに限定されます) を可能にします。

     w3m-type-ahead.el のダウンロード: http://alioth.debian.org/project/showfiles.php?group_id=30594

このマニュアルを書いた人たち
**************

  * 白井 秀行

  * 土屋 雅稔

  * 中島 幹夫

  * 中山 洋一

  * Romain Francoise

  * 山岡 克美

  * 大和 正武

索引
**