2004年06月17日

w3mをBEPで読ませる。

最近毎日書けないのだが、このブログに飽きてしまったわけではない。BEPを使いこなすのがうまく行かず、なかなか書けるところまで進めなかった。





さて、今回は、BEP入りのMeadowにw3mを組み込もうという試みである。前回のw3がとても中途半端なことしか書けなくて、今回もそうなってしまうのではないかという不安はあったのだが。実際かなり手こずってしまった。



最初に、w3mとは。

これはテキストベースのWebブラウザである。同様のものとしてLYNXというのがあるが、w3mはtableやframeに対応していたりする。w3mはLinux上で単独のコマンドとして使うものだが、CYGWIN環境のWindowsでも利用できる。ホームページはhttp://w3m.sourceforge.net/である。



「w3m URL」とコマンドをタイプすると、指定のURLのページをテキストで表示してくれる。



ダウンロードリンクにある東北大学HTTPには、windows用の実行ファイルが置いてあるので(binary/i386)、コマンドプロンプトで作業ができる人は、試しに使ってみるといい。



次に、emacs-w3m。

これはemacs上でw3mを使えるようにするマクロである。つまり表示とインターフェイスをemacs側に持ってくることで、emacsをテキストブラウザにしてしまえるマクロである。もちろんwindows上で動くようにしたemacsであるmeadowでも動かすことができる。

前回紹介したw3は、全てをマクロで実現しようとしているために動作がかなり遅くなってしまっているが、w3mというコマンドに細かなことを任せているので、軽快にemacs上でWebページを見ることができる。こちらのホームページは、http://emacs-w3m.namazu.org/である。



さて、これを先日インストールしたBEP入りのMeadowに組み込む訳なのだが、そう簡単にはいかなかった。苦労話をしたくなるのだが、話が長くなるので、できるだけ簡潔に書く。



先の東北大学に置いてあるバイナリは、コマンド単体として動かすのには問題ないが(CYGWIN環境)、emacs-w3mでの操作ではうまくいかなかった。そのため最新のw3mを自分でコンパイルすることにした。



(CYGWINをインストールしたい人はこのページあたりを、http://www.mars.dti.ne.jp/~sohda/cygwin/、参考に。パッケージ選択の時に、gettextとopenssl関連は入れておかないと、後のコンパイル時に困る。他にも必要なのが有るかもしれないが、そのときは自分で調べてsetup.exeをもう一度利用して追加する。)



w3mをコンパイルするには、Boehm-gcが必要なので、このページに行ってソースをダウンロードしてくる。そして適当なフォルダに解凍する。



CYGWINのコマンドプロンプトを起動して、解凍したフォルダに移動し、

「./configure」

「make」

「make install」

を実行する。(ERRORが出てしまった場合は、あきらめるか、自力で問題解決してください。)



お次は、w3mをhttp://w3m.sourceforge.net/からダウンロードしてくる。

現在の最新バージョンはw3m-0.5.1。

同様に「./configure」「make」「make install」を実行する。

これで、w3mができあがり。

/usr/local/binにw3m.exeがコピーされているはずなので、動作確認をしてみる。

うまくいったら、作成されたw3m.exeまでのパスを環境変数PATHに追加しておく。



いよいよ、emacs-w3mをMeadowに組み込む。

http://emacs-w3m.namazu.org/から、最新安定版を持ってくる。現在は、emacs-w3m-1.4.tar.gz。これも適当なフォルダに解凍して、このページの非UNIX環境へのインストールを参考にして、



「C:Meadow1.15binmeadow -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install」(BEPをインストールしたフォルダに合わせて書きかえる。)をコマンドプロンプトから実行する。問題がなければ組み込み成功。



.emacsファイルを開き、

(require 'w3m-load)

の1行を入れて、準備完了。



おもむろに、meadowを起動して、「M-x w3m」でコマンド実行すれば、w3mが起動する。





w3mの基本コマンド

(大文字と小文字で意味が違うので気を付けないといけない)

H  ホームページを表示する。

B  ページを戻る。

N  ページを進む。

R  再読込み。

g  URL指定(ミニバッファで指定する)

↑↓ 行を移動する。BEPにより移動先の行が読まれる。

←→ 文字を移動する。BEPにより1文字ずつ読み上げられる。

s  履歴を表示する。

S  ページ検索。ミニバッファでGoogle検索。

(他にもいろいろある。)



emacspeak特有のキー操作ができないが、emacs-w3mのソースが公開されていることだし、やる気さえあれば、いろいろキーバインドを書きかえられると思う。HPR3並みの操作性を持たせてもいい。僕はしないが。



残念なことに、いろいろやっていると、音声読み上げが止まってしまう。英語の文字読みだけは生きているが、他は使えなくなる。このときは、w3m以外のバッファに移動して(C-eのショートカットが使える状態にして)スピーチサーバーの再起動「C-e C-s」を実行すればいい。そして再びw3mのバッファに戻ってくる。





とにかく疲れた。


posted by takayan at 23:59 | Comment(0) | TrackBack(0) | BEP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。