Adding upstream version 0.5.1

This commit is contained in:
Tatsuya Kinoshita
2011-05-04 16:05:14 +09:00
parent adc0f0ac3c
commit 72f72d64a4
403 changed files with 329486 additions and 0 deletions
+235
View File
@@ -0,0 +1,235 @@
<HTML>
<HEAD>
<TITLE>W3M FAQ</TITLE>
</HEAD>
<BODY>
<h1>w3mに関して良く聞かれる(であろう)質問とその答え</h1>
<div align=right>
伊藤 彰則<br>
aito@fw.ipsj.or.jp
</div>
<a name="general">
<center>
<h2>一般的なこと,入手方法,動作環境</h2>
</center>
<dl>
<dt>``w3m''は何と読むのですか?
<dd>「だぶりゅーさんえむ」または「だぶりゅーすりーえむ」です.
``w3m''と書いてプテラノドンと読んだりはしません.
<P>
<dt>どうして``w3m''という名前なの?
<dd>WWW-wo-Miru(WWWを見る)から付けました.
<P>
<dt>どういう環境で動くの?
<dd>一般的なUNIXで動きます.最新版またはそれに近いバージョンで動作が確認されているのは,
<blockquote>
<pre>
SunOS 4.1.x
HP-UX 9.x, 10.x
Solaris 2.5.x, 2.6, 8, 9
Linux 2.0.*/2.2.*/2.4.*
FreeBSD 2.2.8, 3.1, 3.2, 4.6
NetBSD/macppc, m68k
EWS4800 Rel.12.2 Rev.A
Digital UNIX: v3.2D, v4.0D
IRIX 5.3, IRIX 6.5
OS/2 with emx
Windows 9x/NT with Cygwin b20.1, 1.1.x, 1.3.x
MS-DOS with DJGPP and WATT32 packet driver
MacOS X Server
MacOS X 10.1, 10.2
</pre></blockquote>
などです.その他のものでも,メジャーなUNIXシステムなら動くでしょう.
<P>
version 990226 から,OS/2 で動くようです.
<P>
version 990303 から,Windows+cygwin32 で動くようになりました.
<P>
<dt>Windows 9x/NT では動かないの?
<dd><a href="http://www.cygwin.com/">Cygwin</a>を使えば動きます.
<p>
<dt>w3mに関する情報はどこから手に入るの?
<dd><a href="http://w3m.sourceforge.net/index.ja.html">
http://w3m.sourceforge.net/</a>に w3m のページ
があります.
<p>
<dt>最新版はどこから手に入るの?
<dd><a href="http://prdownloads.sourceforge.net/w3m/">
http://prdownloads.sourceforge.net/w3m/</a>から手に入ります.
<p>
<dt>w3m に関するMLはありませんか?
<dd>
開発者向けML(w3m-dev(日本語)とw3m-dev-en(英語))があります。詳しくは
<a href="http://w3m.sourceforge.net/">w3m のページ</a>
をご覧ください。開発関連以外で
何か言いたいことがある場合には,作者に<a href="mailto:aito@fw.ipsj.or.jp">
直接メール</a>するか,あるいは<a href="http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html">
w3m BBS</a>に書いてください.
<p>
<dt>バイナリ配布はしないの?
<dd>
いくつかのプラットフォームについて,w3mのバイナリ配布をやって
くださっているサイトがあります.詳しくは
<a href="http://w3m.sourceforge.net/">
w3mのページ</a>をごらんください.
</dl>
<a name="install"></a>
<center><h2>コンパイルとインストール</h2></center>
特に問題なし :-)
<a name="command"></a>
<center><h2>オプション,コマンド,使いかた</h2></center>
<dl>
<dt> w3m と入力したら,何も表示せずに終わっちゃいました.何が悪いの?
<dd> w3m は<B>ページャ</B>です.ですから,何も指定しないで起動すれば
そのまま終了します.何か表示させたい場合には,
<ol>
<li>引数にファイル名かURLを書く.
<li>標準入力に何か入れてあげる.
<li>-B オプション(ブックマーク表示)をつける.
<li>環境変数 HTTP_HOME か WWW_HOME に,見たいページのURLを入れておく.
</ol>
のどれかをやってください.
<p>
<dt>w3mを起動したら,画面が真っ黒になってしまいました.どうして?
<dd>w3mをカラー表示の設定でコンパイルすると,最初は背景色が白で
文字色が黒の設定になります.そのため,ふだん背景を黒にしている状態で
w3mを起動すると,字が見えなくなります.<p>
こういう場合は,次のようにして色を設定します.
<UL>
<LI>w3m -M で w3m を起動し,白黒モードで表示する.
<LI>"o" コマンドでオプション設定画面にする.
<LI><B>カラー表示モードをONにし</B>,適当な文字色を選んで,
[OK]を選択する.
</UL>
<p>
<dt>カラー表示をさせるにはどうするの?
<dd>コンパイル時に,configure のオプションに --disable-color を指定しな
ければカラー表示ができるようになります。
<p>
<dt>白黒で表示したいんだけど?
<dd>方法は3つあります.
<OL>
<LI>上記の質問に 1 と答えてコンパイルする.
<LI>-M オプションをつけて起動する.
<LI>"o" コマンドでオプション設定パネルを起動し,カラー表示をOFFにする.
</OL>
<p>
<dt>画面をはみ出した部分を見るには?
<dd>カーソルを画面の端に移動させれば,それに合わせて画面全体がずれます.
また,"&gt;"と"&lt;"で画面全体をずらすことができます.
<p>
<dt>カーソル移動がわずらわしい.
<dd>TABで次のアンカーに移動するので,Lynxと似た感覚で使えるでしょう.
また,C-uおよびESC TABで前のアンカーに戻ります.
<p>
<dt>Netscapeでは赤い文字になっている部分が,w3m では黒いまま.なぜ?
<dd>w3mは,&lt;FONT COLOR=".."&gt;による文字の色指定には対応していません.
対応は不可能ではないですが,文字の色が背景と同じになったりして見づらく
なるのがオチなので,あまり対応する気になりません.
<p>
<dt>アンカー/画像/formの色を変えるには?
<dd>990309版から,オプションで切りかえられるようになりました."o" コマンド
で設定パネルを表示させ,好きな色を選んでください.字の表示色が背景と同じに
なって何も見えないという場合には,-M オプションで白黒表示にしてから設定を
するとよいでしょう.
<p>
<dt>環境変数 EDITOR を設定したけど,効かないのはなぜ?
<dd>"o"コマンドでオプションを表示させてみてください.
エディタの項目に何か書いてあれば,それが優先されます.
環境変数を効かせたい場合は,この欄を空白にしてオプションを
更新してください.
<p>
<dt>サーチやURL入力を途中でやめるには?
<dd><!-- C-u で入力内容を消して,RETを押します.-->
C-c で戻ります.
</dl>
<a name="www"></a>
<center><h2>WWWを使う場合の質問</h2></center>
<dl>
<dt>formに入力するにはどうするの?
<dd>formの部分は,画面上で赤(または反転)で表示されていますので,
そこにカーソルを持っていってリターンを押します.すると,
<UL>
<LI>text の場合は,画面最下行で入力待ちになりますので,文字を入力します.
<LI>radio, checkbox の場合は,その項目が選ばれます.
<LI>textarea の場合は,エディタが起動しますので,文章を入力します.
このとき,必ず表示用漢字コードと同じ漢字コードでファイルを保存してください.
<LI>submit, reset の場合は,formの内容を送信/クリアします.
</UL>
<dt>文書の表示が遅いんだけど?
<dd>w3mはHTML文書を2パスで整形するので,文書全体を読みこまないと
表示ができません.Netscapeなどは文書を読みながら表示するので,
表示が速いように思えるのでしょう.
<p>
<dt>一度読んだ文書を2度目に読んだときに,読みこみが速くならないんだけど?
<dd>他の多くのブラウザと違い,w3mはキャッシュを持っていません.
そのため,文書を読むたびにWWWサーバから文書を転送します.もし可能なら,
キャッシュサーバを利用すると快適です.設定はプロキシの設定と同じです.
<p>
<dt>リンク先のファイルを直接保存する方法はないの?
<dd>'a' (Lynx 風キーバインドの場合は 'd') または ESC RETでリンク先の文書を
保存します.画像を保存する場合は ESC I です.
<p>
<dt>プロキシの設定はどうするの?
<dd>環境変数 HTTP_proxy を設定するか,"o" コマンドのオプション設定パネル
で設定します.例えば proxy.hogege.com というホストの 8000番ポートを
利用する場合,
<p>
<pre>
http://proxy.hogege.com:8000/
</pre>
<p>
と設定します.
<p>
<dt>外部ブラウザを起動すると,w3mが固まってしまいます.
何とかなりませんか?
<dd>"o"コマンドで設定パネルを表示し,外部ブラウザの項目に,例えば
<p>
<pre>
netscape %s &
</pre>
<p>
のように入力します.この場合,%s の部分が URL に置きかわってブラウザが起動し
ます.
<p>
<dt>画像のビューアを変えたいんだけど,どうするの?
<dd>初期設定では画像を見るのに xv を使うようになっていますが,これを
例えば display に変える場合は,~/.mailcap または /etc/mailcap に次のよ
うな記述を入れます.
<p>
<pre>
image/*; display %s
</pre>
<p>
同じように,他のタイプのデータを処理するプログラムを指定することも
できます.
<p>
<pre>
image/*; display %s
application/postscript; ghostview %s
application/x-dvi; xdvi %s
</pre>
</dl>
<a name="other"></a>
<center><h2>その他</h2></center>
<dl>
<dt>設定ファイルはどこにあるの?
<dd>~/.w3m ディレクトリの下の config です.
<p>
<dt>~/.w3m の下に w3mXXXXXX のようなファイルがたくさんあるけど,何?
<dd>WWWサーバからファイルを読んでいるときに,それを一時的に保存する
ファイルです.いわゆるキャッシュファイルではありません.
w3m を終了すれば消去されるはずですが,w3mが異常終了した場合には残る
ことがあります.そういう場合は手で消してください.
<p>
</dl>
</BODY>
</HTML>
+4273
View File
File diff suppressed because it is too large Load Diff
+563
View File
@@ -0,0 +1,563 @@
<html>
<head><title>w3m manual</title>
</head>
<body>
<h1>w3m マニュアル</h1>
<div align=right>
伊藤 彰則<br>
aito@fw.ipsj.or.jp
</div>
<h2>もくじ</h2>
<menu>
<li><a href="#Introduction">はじめに</a>
<li><a href="#Options">起動オプション</a>
<li><a href="#Color">文書の表示内容</a>
<li><a href="#Key:orig">起動後の使いかた(オリジナル)</a>
<li><a href="#Key:lynx">起動後の使いかた(Lynx風)</a>
<li><a href="#Mouse">マウス操作</a>
<li><a href="#Key:custom">キーの定義</a>
<li><a href="#LocalCGI">Local CGI</a>
</menu>
<hr>
<a name="Introduction"></a>
<h2>はじめに</h2>
w3m は,テキストベースのページャ/WWWブラウザです.これを使うと,kterm などのキャラクタ
端末上で,ローカルファイルを見たり,WWWの内容を見たりすることができます.
<hr>
<a name="Options"></a>
<h2>起動オプション</h2>
起動時の引数は次の通りです.
<p>
<pre>
w3m [options] [file|URL]
</pre>
<P>
引数にファイル名を指定すればそのファイルを表示し,URLを指定すればその内容を表示します.
何も指定しなければ,標準入力の内容を表示します.ただし,標準入力が tty である場合には,
何もせずに終了します.
<p>
オプションは次の通りです.
<dl>
<dt>+番号
<dd>起動後,指定の行番号に移動する.
<dt>-t 幅
<dd>タブの幅を指定する.デフォルトは 8 .
<dt>-r
<dd>text/plain の文書を表示する場合,重ね打ちによる強調文字を表示しない.
このオプションを付けない場合,``A^H_''はAのアンダーラインとして表示され,
``A^HA''はAのボールドとして表示される.
<dt>-l 行数
<dd>標準入力の内容を表示するときに保存される最大行数を指定す
る.デフォルトは 10000
<dt>-s
<dd>Shift_JIS コードで表示する.
<dt>-e
<dd>EUC コードで表示する.
<dt>-j
<dd>JIS(ISO-2022-JP) コードで表示する.
<dt>-O e|s|j|N|m|n
<dd>表示に用いる文字コードを指定する.
<dt>-I e|s
<dd>入力文書の文字コードを指定する.
<dt>-T タイプ
<dd>表示する文書のタイプを指定する.この指定がない場合,ファイル
名の拡張子によって自動判別される.判別できない場合は text/plain
とみなされる.<p>
例:<br>
標準入力から HTML ファイルを読んで表示する
<pre>
cat hoge.html | w3m -T text/html
</pre>
<p>
HTMLファイルのソースを表示する
<pre>
w3m -T text/plain hoge.html
</pre>
<dt>-m
<dd>Internet message モードで表示する.Internet messageモードの場合,
ヘッダの内容を見て,Content-Type: があればそれを参考にする.電子メールや
ネットニュースの記事を読むときに便利.
<dt>-v
<dd>スタートアップページを表示する.
<dt>-B
<dd>Bookmark を表示する.
<dt>-bookmark file
<dd>Bookmarkのファイルを指定する.
<dt>-M
<dd>カラー表示をしない.
<dt>-F
<dd>フレームを自動表示する.
<dt>-S
<dd>連続する空行を1行にまとめて表示する.
<dt>-X
<dd>w3m終了時に,以前の画面に戻らない.
<dt>-W
<dd>折り返しサーチを使うかどうかを切りかえる.
<dt>-o option=value
<dd>オプションを指定する.
<dt>-no-proxy
<dd>プロキシを利用しない.
<dt>-pauth user:pass
<dd>プロキシ認証用のユーザ名とパスワードを指定する.
<dt>-no-mouse
<dd>マウスを利用しない.
<dt>-cookie
<dd>クッキーを処理する.
<dt>-no-cookie
<dd>クッキーを処理しない.
<dt>-num
<dd>行番号を表示する.
<dt>-dump
<dd>URLの内容を読みこみ,整形されたバッファの内容を標準出力に書き出す.
文書の幅は80桁と仮定される.この幅は,次の -cols オプションで変更可能.
<dt>-cols 幅
<dd>-dump オプションを使う場合に,文書の幅を指定する.
<dt>-ppc ピクセル数
<dd>文字の幅を指定する.デフォルトはウインドウの大きさから自動的に計算する.
<dt>-ppl ピクセル数
<dd>文字の縦幅を指定する.デフォルトはウインドウの大きさから自動的に計算する.
<dt>-dump_source
<dd>URLの内容を読みこみ,整形せずに標準出力に書き出す.
漢字コード変換もされない.
<dt>-dump_head
<dd>URLにアクセスし,ヘッダ情報を出力する.
<dt>-dump_both
<dd>URLにアクセスし,ヘッダ情報とHTMLソースを出力する.
<dt>-dump_extra
<dd>URLにアクセスし,拡張情報とヘッダ情報とHTMLソースを出力する.
<dt>-post file
<dd>ファイルの内容をPOSTする.
<dt>-header string
<dd>HTTP要求ヘッダを追加する.
<dt>-config file
<dd>configのファイルを指定する.
</dl>
<hr>
<a name="Color"></a>
<h2>文書の表示内容</h2>
HTML文書を表示しているときには,次のような表示になります.
<div align="center">
<table border="1">
<tr><th></th><th>カラー表示時</th><th>白黒表示時</th></tr>
<tr><td>リンク</td><td>青色</td><td>下線</td></tr>
<tr><td>インライン画像</td><td>緑色</td><td>反転表示</td></tr>
<tr><td>FORMの入力部分</td><td>赤色</td><td>反転表示</td></tr>
</table>
</div>
カラー表示時の色は,オプション設定パネル "o" で変更することができます.
<hr>
<a name="Key:orig"></a>
<h2>起動後の使いかた(オリジナル)</h2>
起動した後は,1文字のコマンドをキーボードから入力することでw3mを操作します.
コマンドには次のようなものがあります.以下の記述では,C-x はコントロールx
を表します.また,SPC はスペースバー,RET はリターンキー,ESC はエスケープキーです.
<P>
ここで書いてあるのは,オリジナル版のキー操作です.Lynx風のキー操作用に
コンパイルしてあるものについては,<a href="#Key:lynx">起動後の使い方(Lynx風)</a>
をごらんください.
<H3>ページ/カーソル移動</H3>
<table>
<TR><TD>SPC,C-v<TD>次のページを表示します.
<TR><TD>b,ESC v<TD>前のページを表示します.
<TR><TD>l,C-f,右矢印キー<TD>カーソルを右に移動します.
<TR><TD>h,C-b,左矢印キー<TD>カーソルを左に移動します.
<TR><TD>j,C-n,下矢印キー<TD>カーソルを下に移動します.
<TR><TD>k,C-p,上矢印キー<TD>カーソルを上に移動します.
<TR><TD>J<TD>画面を1行上にスクロールします.
<TR><TD>K<TD>画面を1行下にスクロールします.
<TR><TD>^,C-a<TD>行頭に移動します.
<TR><TD>$,C-e<TD>行末に移動します.
<TR><TD>w<TD>次の単語に移動します.
<TR><TD>W<TD>前の単語に移動します.
<TR><TD>&gt;<TD>画面全体を右にずらします.(表示内容を左にずらす)
<TR><TD>&lt;<TD>画面全体を左にずらします.(表示内容を右にずらす)
<TR><TD>.<TD>画面全体を1文字右にずらします.(表示内容を左にずらす)
<TR><TD>,<TD>画面全体を1文字左にずらします.(表示内容を右にずらす)
<TR><TD>g,M-&lt;<TD>文書のいちばん上の行に移動します.
<TR><TD>G,M-&gt;<TD>文書のいちばん下の行に移動します.
<TR><TD>ESC g<TD>画面下で行番号を入力し,そこで指定した行に移動します.
ここで $ を入力すると,最終行に移動します.
<TR><TD>Z<TD>カーソルのある位置を行の中央に移動します.
<TR><TD>z<TD>カーソルのある行を画面の中央に移動します.
<TR><TD>TAB<TD>次のリンクに移動します.
<TR><TD>C-u, ESC TAB<TD>前のリンクに移動します.
<TR><TD>[<TD>最初のリンクに移動します.
<TR><TD>]<TD>最後のリンクに移動します.
</table>
<H3>ハイパーリンク操作</H3>
<table>
<TR><TD WIDTH=100>RET<TD>現在カーソルがあるリンクが指す先の文書を読みこみます.
<TR><TD>a, ESC RET<TD>現在カーソルがあるリンクが指す先の文書をファイルに保存します.
<TR><TD>u<TD>現在カーソルがあるリンクが指す先のURLを表示します.
<TR><TD>i<TD>リンクに関連付けられた画像へのURLの表示します.
<TR><TD>I<TD>現在カーソルがあるリンクに対応する画像を表示します.
<TR><TD>ESC I<TD>現在カーソルがあるリンクが指す
画像をファイルに保存します.
<TR><TD>:<TD>URL風の文字列をリンクにします.この機能は,HTMLでない文書を
読んでいるときにも有効です.
<TR><TD>ESC :<TD>Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を
読んでいるときにも有効です.
<TR><TD>c<TD>現在の文書のURLを表示します.
<TR><TD>=<TD>現在の文書に関する情報を表示します.
<TR><TD>C-g<TD>ページ中での現在位置を表示します.
<TR><TD>C-h<TD>URL履歴を表示します.
<TR><TD>F<TD>&lt;FRAMESET&gt;を含む文書を表示しているときに,&lt;FRAME&gt;
タグの指す複数の文書を1つの文書に変換して表示します.
<TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します.
2M, 3M で2番目と3番目のブラウザを使います.
<TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します.
2ESC M, 3ESC M で2番目と3番目のブラウザを使います.
</table>
<H3>ファイルとURL関係の操作</H3>
<table>
<TR><TD WIDTH=100>U<TD>URLを指定して開きます.
<TR><TD>V<TD>ローカルファイルを指定して開きます.
<TR><TD>@<TD>コマンドを実行し,結果を全部読んでから表示します.
<TR><TD>#<TD>コマンドを実行し,結果を読みこみながら表示します.
</table>
<H3>バッファ操作</H3>
<table>
<TR><TD WIDTH=100>B<TD>現在見ているバッファを削除し,一つ前のバッファを表示します.
<TR><TD>v<TD>HTMLのソースを表示します.
<TR><TD>s<TD>バッファ選択モードに入ります.
<TR><TD>E<TD>現在見ているバッファがローカルファイルの場合,そのファイルをエディタ
で編集します.エディタを終了した後,そのファイルを再度読み込みます.
<TR><TD>C-l<TD>画面を再描画します.
<TR><TD>R<TD>バッファを再度読み込みます.
<TR><TD>S<TD>バッファの表示内容をファイルに保存します.
<TR><TD>ESC s<TD>HTMLのソースをファイルに保存します.v でソースを表示して S で
保存するのとほぼ同じですが,ESC s で保存したファイルは漢字コードがオリジナルの
ままであるのに対して,v S で保存すると現在表示に使っている漢字コードに変換され
て保存されます.
<TR><TD>ESC e<TD>現在表示されているバッファを,表示されている形式のまま
エディタで編集します.
</table>
<H3>バッファ選択モード</H3>
"s" でバッファ選択モードに入ったときのキー操作です.
<table>
<TR><TD WIDTH=100>k,C-p<TD>一つ上のバッファを選択します.
<TR><TD>j,C-n<TD>一つ下のバッファを選択します.
<TR><TD>D<TD>現在選択しているバッファを削除します.
<TR><TD>RET<TD>現在選択しているバッファを表示します.
</table>
<H3>ブックマーク操作</H3>
<table>
<TR><TD WIDTH=100>ESC b<TD>ブックマークを読み込みます.
<TR><TD>ESC a<TD>現在見ているページをブックマークに追加します.
</table>
<H3>検索</H3>
<table>
<TR><TD WIDTH=100>/,C-s<TD>現在のカーソル位置からファイル末尾に向かって正規表現を検索します.
<TR><TD>?,C-r<TD>現在のカーソル位置からファイルの先頭に向かって正規表現を検索します.
<TR><TD>n<TD>次を検索します.
<TR><TD>N<TD>前を検索します.
<TR><TD>C-w<TD>折り返し検索モードを切り換えます.
</table>
<H3>マーク操作</H3>
<table>
<TR><TD WIDTH=100>C-SPC<TD>マークを設定/解除します.マークは反転表示されます.
<TR><TD>ESC p<TD>一つ前のマークに移動します.
<TR><TD>ESC n<TD>一つ後のマークに移動します.
<TR><TD>"<TD>正規表現で指定された文字列を全てマークします.
</table>
<H3>その他</H3>
<table>
<TR><TD WIDTH=100>!<TD>シェルコマンドを実行します.
<TR><TD>H<TD>ヘルプファイルを表示します.
<TR><TD>o<TD>オプション設定パネルを表示します.
<TR><TD>C-k<TD>クッキー一覧を表示します.
<TR><TD>C-c<TD>文書の読み込みを中断します.
<TR><TD>C-z<TD>サスペンド
<TR><TD>q<TD>w3mを終了します.オプションの設定によって,終了するかどうか確認します.
<TR><TD>Q<TD>確認せずにw3mを終了します.
</table>
<H3>行編集</H3>
画面の最下行で文字列を入力する場合に有効なキー操作です.
<table>
<TR><TD WIDTH=100>C-f<TD>カーソルを右に移動します.
<TR><TD>C-b<TD>カーソルを左に移動します.
<TR><TD>C-h<TD>カーソルの直前の文字を削除します.
<TR><TD>C-d<TD>カーソル位置の文字を削除します.
<TR><TD>C-k<TD>カーソル位置から後を削除します.
<TR><TD>C-u<TD>カーソル位置から前を削除します.
<TR><TD>C-a<TD>文字列の先頭に移動します.
<TR><TD>C-e<TD>文字列の最後に移動します.
<TR><TD>C-p<TD>ヒストリから一つ前の文字列を取り出します.
<TR><TD>C-n<TD>ヒストリから次の文字列を取り出します.
<TR><TD>TAB,SPC<TD>ファイル名入力時に,ファイル名を補完します.
<TR><TD>RETURN<TD>入力を終了します.
</table>
<hr>
<a name="Key:lynx"></a>
<h2>起動後の使いかた(Lynx風)</h2>
Lynx風キーバインドでコンパイルした場合の使いかたです.
<H3>ページ/カーソル移動</H3>
<table>
<TR><TD>SPC,C-v,+<TD>次のページを表示します.
<TR><TD>b,ESC v,-<TD>前のページを表示します.
<TR><TD>l<TD>カーソルを右に移動します.
<TR><TD>h<TD>カーソルを左に移動します.
<TR><TD>j<TD>カーソルを下に移動します.
<TR><TD>k<TD>カーソルを上に移動します.
<TR><TD>J<TD>画面を1行上にスクロールします.
<TR><TD>K<TD>画面を1行下にスクロールします.
<TR><TD>^<TD>行頭に移動します.
<TR><TD>$<TD>行末に移動します.
<TR><TD>&gt;<TD>画面全体を右にずらします.(表示内容を左にずらす)
<TR><TD>&lt;<TD>画面全体を左にずらします.(表示内容を右にずらす)
<TR><TD>C-a<TD>文書のいちばん上の行に移動します.
<TR><TD>C-e<TD>文書のいちばん下の行に移動します.
<TR><TD>G<TD>画面下で行番号を入力し,そこで指定した行に移動します.
ここで $ を入力すると,最終行に移動します.
<TR><TD>Z<TD>カーソルのある位置を行の中央に移動します.
<TR><TD>z<TD>カーソルのある行を画面の中央に移動します.
<TR><TD>TAB, C-n, 下矢印<TD>次のリンクに移動します.
<TR><TD>ESC TAB, C-p, 上矢印<TD>前のリンクに移動します.
<TR><TD>C-g<TD>ページ中での現在位置を表示します.
</table>
<H3>ハイパーリンク操作</H3>
<table>
<TR><TD WIDTH=100>RET, C-f, 右矢印<TD>現在カーソルがあるリンクが指す先の文書を読みこみます.
<TR><TD>d, ESC RET<TD>現在カーソルがあるリンクが指す先の文書をファイルに保存します.
<TR><TD>u<TD>現在カーソルがあるリンクが指す先のURLを表示します.
<TR><TD>i<TD>現在カーソルがあるリンクを含む画像そのもののURLを表示します.
<TR><TD>I<TD>現在カーソルがあるリンクに対応する画像を表示します.
<TR><TD>ESC I<TD>現在カーソルがあるリンクが指す画像をファイルに保存します.
<TR><TD>:<TD>URL風の文字列をリンクにします.この機能は,HTMLでない文書を
読んでいるときにも有効です.
<TR><TD>ESC :<TD>Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を読んでいるときにも有効です.
<TR><TD>c<TD>現在の文書のURLを表示します.
<TR><TD>=<TD>現在の文書に関する情報を表示します.
<TR><TD>C-h<TD>URL履歴を表示します.
<TR><TD>F<TD>&lt;FRAMESET&gt;を含む文書を表示しているときに,&lt;FRAME&gt;
タグの指す複数の文書を1つの文書に変換して表示します.
<TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します.
2M, 3M で2番目と3番目のブラウザを使います.
<TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します.
2ESC M, 3ESC M で2番目と3番目のブラウザを使います.
</table>
<H3>ファイルとURL関係の操作</H3>
<table>
<TR><TD WIDTH=100>g, U<TD>URLを指定して開きます.
<TR><TD>V<TD>ローカルファイルを指定して開きます.
<TR><TD>@<TD>コマンドを実行し,結果を全部読んでから表示します.
<TR><TD>#<TD>コマンドを実行し,結果を読みこみながら表示します.
</table>
<H3>バッファ操作</H3>
<table>
<TR><TD WIDTH=100>B, C-b, 左矢印<TD>現在見ているバッファを削除し,一つ前のバッファを表示します.
<TR><TD>\<TD>HTMLのソースを表示します.
<TR><TD>s<TD>バッファ選択モードに入ります.
<TR><TD>E<TD>現在見ているバッファがローカルファイルの場合,そのファイルをエディタで編集します.エディタを終了した後,そのファイルを再度読み込みます.
<TR><TD>C-l, C-w<TD>画面を再描画します.
<TR><TD>R, C-r<TD>バッファを再度読み込みます.
<TR><TD>S, p<TD>バッファの表示内容をファイルに保存します.
<TR><TD>ESC s<TD>HTMLのソースをファイルに保存します.v でソースを表示して S で
保存するのとほぼ同じですが,ESC s で保存したファイルは漢字コードがオリジナルの
ままであるのに対して,v S で保存すると現在表示に使っている漢字コードに変換され
て保存されます.
<TR><TD>ESC e<TD>現在表示されているバッファを,表示されている形式のまま
エディタで編集します.
</table>
<H3>バッファ選択モード</H3>
"s" でバッファ選択モードに入ったときのキー操作です.
<table>
<TR><TD WIDTH=100>k,C-p<TD>一つ上のバッファを選択します.
<TR><TD>j,C-n<TD>一つ下のバッファを選択します.
<TR><TD>D<TD>現在選択しているバッファを削除します.
<TR><TD>RET<TD>現在選択しているバッファを表示します.
</table>
<H3>ブックマーク操作</H3>
<table>
<TR><TD WIDTH=100>v, ESC b<TD>ブックマークを読み込みます.
<TR><TD>a, ESC a<TD>現在見ているページをブックマークに追加します.
</table>
<H3>検索</H3>
<table>
<TR><TD WIDTH=100>/,C-s<TD>現在のカーソル位置からファイル末尾に向かって正規表現を検索します.
<TR><TD>n<TD>次を検索します.
<TR><TD>w<TD>折り返し検索モードを切り換えます.
</table>
<H3>マーク操作</H3>
<table>
<TR><TD WIDTH=100>C-SPC<TD>マークを設定/解除します.マークは反転表示されます.
<TR><TD>P<TD>一つ前のマークに移動します.
<TR><TD>N<TD>一つ後のマークに移動します.
<TR><TD>"<TD>正規表現で指定された文字列を全てマークします.
</table>
<H3>その他</H3>
<table>
<TR><TD WIDTH=100>!<TD>シェルコマンドを実行します.
<TR><TD>H, ?<TD>ヘルプファイルを表示します.
<TR><TD>o<TD>オプション設定パネルを表示します.
<TR><TD>C-k<TD>クッキー一覧を表示します.
<TR><TD>C-c<TD>文書の読み込みを中断します.
<TR><TD>C-z<TD>サスペンド
<TR><TD>q<TD>w3mを終了します.オプションの設定によって,終了するかどうか確認します.
<TR><TD>Q<TD>確認せずにw3mを終了します.
</table>
<H3>行編集</H3>
画面の最下行で文字列を入力する場合に有効なキー操作です.
<table>
<TR><TD WIDTH=100>C-f<TD>カーソルを右に移動します.
<TR><TD>C-b<TD>カーソルを左に移動します.
<TR><TD>C-h<TD>カーソルの直前の文字を削除します.
<TR><TD>C-d<TD>カーソル位置の文字を削除します.
<TR><TD>C-k<TD>カーソル位置から後を削除します.
<TR><TD>C-u<TD>カーソル位置から前を削除します.
<TR><TD>C-a<TD>文字列の先頭に移動します.
<TR><TD>C-e<TD>文字列の最後に移動します.
<TR><TD>SPC<TD>ファイル名入力時に,ファイル名を補完します.
<TR><TD>RETURN<TD>入力を終了します.
</table>
<hr>
<a name="Mouse"></a>
<h2>マウス操作</h2>
マウス機能をONにしてコンパイルしてあれば,マウスを使って
w3mを操作することができます.マウスが使えるのは,xterm/kterm/rxvt
を使っている場合(この場合には,環境変数TERMを xterm か kterm に
設定する必要があります),または GPM が動いている環境を使っている場合
です.
<p>
<table border=0>
<tr><td>左クリック
<td>カーソルをマウスカーソルの位置に移動します.
もしカーソルとマウスカーソルの位置が同じで,カーソルが
リンクの上にあったときは,そのリンクをたどります.
<tr><td>中クリック
<td>前のバッファに戻ります.
<tr><td>右クリック
<td>メニューを開きます.メニューの項目もマウスで選ぶことができます.
<tr><td>左ドラッグ
<td>ページをスクロールします.デフォルトの動作では,
マウスのドラッグに合わせて文書の方をスクロールします.
オプション設定パネルの設定で,この動作を逆にすること
ができます(マウスのドラッグに合わせて,ウィンドウの方を
スクロールする)
</table>
<p>
<hr>
<a name="Key:custom"></a>
<h2>キーの定義</h2>
~/.w3m/keymap を記述すると,キーの割りあてを変えることができます
(行編集のキー定義を除く).例えば,
<pre>
keymap C-o NEXT_PAGE
</pre>
と記述すると,NEXT_PAGE機能(通常スペースと C-v)に割りあてられて
いるもの)を C-o に割りあてることができます.
利用可能な機能と,その名前については,
<a href="README.func">README.func</a>を参照してください.
例として,オリジナルとLynx風のキー定義ファイル
(<a href="keymap.default">keymap.default</a>
<a href="keymap.lynx">keymap.lynx</a>)が置いてあります.
<hr>
<a name="LocalCGI"></a>
<h2>Local CGI</h2>
w3mを使えば,HTTPサーバなしでCGIスクリプトを起動することができます.
このとき,w3mがサーバのふりをしてスクリプトを起動し,その出力を
読みこんで表示するわけです.
<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">ブックマークの登録</a>
<a href="file:///$LIB/w3mhelperpanel?mode=panel">外部ビューアの編集</a>
は,local CGIのスクリプトとして実現されています.
local CGIを使えば,w3mを汎用のフォーム入力インタフェースとして
使うことができます.
<P>
セキュリティ上の理由により,起動するCGIスクリプトは,次のどれかの
ディレクトリにある必要があります.
<ul>
<li>w3mのヘルプファイルなどが置いてあるディレクトリ
(典型的には /usr/local/lib/w3m).このディレクトリは,
$LIB で参照することができます.
<li>/cgi-bin/ ディレクトリ.このディレクトリは,任意の場所に
割りあてることができます(オプション設定パネルの「/cgi-binで表される
ディレクトリ」の項目).ここには,: で区切って複数のディレクトリを
指定することができます(例えば /usr/local/cgi-bin:/home/aito/cgi-bin など)
/cgi-bin/ を使う場合は、
<pre>
w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi
</pre>
のように file:/cgi-binというURLを使う必要があります。
この中にカレントディレクトリを入れることは,セキュリティ上の理由により
薦められません.
</ul>
<p>
Local CGIとして使われるスクリプトでは,w3mをコントロールするために,
特殊なヘッダ `w3m-control:' を使うことができます.このヘッダには,
w3mの任意の機能 (<a href="README.func">README.func</a>参照)を書く
ことができます.文書が表示された後,その機能が呼び出されます.
例えば,
<pre>
Content-Type: text/plain
W3m-control: BACK
</pre>
というヘッダを出力した場合,w3mは空のページを表示し,その直後に
そのバッファを削除します.これは,CGIを実行した後で,何もページを
表示したくない場合に有効です.また,
<pre>
Content-Type: text/plain
W3m-control: DELETE_PREVBUF
contents.....
</pre>
は,新しいバッファで直前のバッファを置きかえます.
<p>
一つの w3m-control: ヘッダには,一つの機能だけを指定することができます.
ただし,HTTPレスポンスの中に複数の w3m-control: を入れることができ,
そこで指定された機能は順番に実行されます.
さらに,GOTO には引数を指定することができます.
<pre>
Content-Type: text/plain
W3m-control: GOTO http://www.yahoo.com/
</pre>
この例は,Location: を使った次の例と同じように動作します.
<pre>
Content-Type: text/plain
Location: http://www.yahoo.com/
</pre>
ただし,w3m-control: ヘッダはw3mがスクリプトを直接呼びだした時だけに
有効です.同じスクリプトを HTTPサーバ経由で呼びだした場合,
w3m-control: ヘッダは無視されます.
</body>
</html>
+128
View File
@@ -0,0 +1,128 @@
w3m: WWW wo Miru Tool version 0.5.1 April 29, 2004
(C) Copyright by Akinori ITO
Hironori SAKAMOTO
Fumitoshi UKAI
1. はじめに
w3m は,World Wide Web に対応したページャです.あくまでページャですが,
テキストベース WWW ブラウザとしても使うことができます.
w3m は,fm というページャをベースとして作られました.fm についての詳細
は,STORY.html をお読みください.w3m のページャとしての基本的な特徴は,fm
とほとんど同じです.
w3m 独自の特徴としては,次のようなものがあります.
・WWW 対応なので,HTML の文書を読んでいる時には,その中のリンクを辿った
り,画像を見ることができる.
・Internet message 表示のためのモードがある.この時,Content-Type: が
text/html の場合は,自動的に HTML の文書として表示する.また,自力で
MIME header のデコードをする.
・見ている plain text 文書中に URL 表記があった場合,その部分からリンク
をたどることができる.
現在の問題点は以下のようなものです.
・オンラインマニュアルが貧弱.簡単な使い方については,MANUAL.html をお読み
ください.
現在動作が確認されている OS は以下の通りです.
SunOS 4.1.x
HP-UX 9.x, 10.x
Solaris 2.5.x, 2.6, 8, 9
Linux 2.0.*/2.2.*/2.4.*/2.6.*
FreeBSD 2.2.8, 3.1, 3.2, 4.6
NetBSD/macppc, m68k
EWS4800 Rel.12.2 Rev.A
Digital UNIX: v3.2D, v4.0D
IRIX 5.3, IRIX 6.5
OS/2 with emx
Windows 9x/NT with Cygwin b20.1, 1.1.x, 1.3.x
MS-DOS with DJGPP and WATT32 packet driver
MacOS X Server
MacOS X 10.1, 10.2
2. インストール
インストールをするには,次のようにします.
- GC library (6.1より新しいもの?)をインストールしておきます。
GC library は
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
から入手できます。
GC library 6.1を使っている場合は gc.h を PREFIX/include に
インストールしておく必要があります。
# cp gc-6.1/include/gc.h PREFIX/include
- configure を実行する.
% ./configure
- make を実行
% make
- make install を実行
# make install
以上でインストールは終わりです.
機種ごとの注意点:
HP-UX
HP の C コンパイラ(gccでなく)でコンパイルする場合,
configure の
Input your favorite C-compiler.
(Default: cc)
に,cc -Aa -D_HPUX_SOURCE と答えてください.cc
だけだとコンパイルが通りません.gcc なら普通に
通りますが,バージョン古めの場合は -g を付けな
いでください.
OS/2
emx を使うことで w3m をコンパイルすることができます.
まず最初に
cd gc
make -f EMX_MAKEFILE
を実行して GC ライブラリをコンパイルしておいてから,w3m
本体をコンパイルします.なお,カラー表示が変になるらしい
ので,モノクロ用にコンパイルした方が良いでしょう.
Windows
Windows で w3m を動かすためには,Windows 上の UNIX互換環境
である Cygwin(開発環境付き)が必要です.
詳細は README.cygwin を参照してください.
3. 著作権
w3m の著作権は,伊藤彰則に属しています.
(C) Copyright 1994-2002 by Akinori Ito
(C) Copyright 2002-2004 by Akinori Ito, Hironori Sakamoto, Fumitoshi Ukai
4. 配布条件
このソフトウェアによって利用者または第三者が何らかの被害を受けた
場合,作者はその責任を一切負いません.この事を承諾する限りにおい
て,このソフトウェアは,誰でも作者に断りなく利用・改変・配布でき
ます.
5. 作者
山形大学工学部電子情報工学科
伊藤 彰則
aito@fw.ipsj.or.jp
現在のメンテナ
鵜飼文敏
Debian Project
ukai@debian.or.jp
ご意見,ご感想をMLまでお寄せください.
w3m-dev@mi.med.tohoku.ac.jp (日本語)
w3m-dev-en@mi.med.tohoku.ac.jp (英語)
http://w3m.sourceforge.net/
+114
View File
@@ -0,0 +1,114 @@
SSL サポートについて
(2000/11/07) 岡部克也
okabek@guitar.ocn.ne.jp
(2001/12/27) 鵜飼文敏
ukai@debian.or.jp
・ OpenSSL ライブラリを通じて, SSL をサポートしています.
あらかじめインストールしておいてください.
・ OpenSSL ライブラリがインストールされていれば configure スクリプト実行時に自
動的に検出されて利用可能となります.
もしうまく動かないときは, config.h をチェックしてみてください. SSL を利用す
るためには, config.h で, USE_SSL マクロが定義されている必要があります.
さらに, SSL 認証サポートを利用する場合は, USE_SSL_VERIFY マクロもチェックし
てみてください.
コンパイルでエラーが出る場合は, リンカフラグに `-lssl -lcrypto', コンパイラ
フラグに '-I(SSLeay/OpenSSL のヘッダがあるディレクトリ)' があるか確認してく
ださい.
SSL サポートが有効になっているかどうかは, Option Setting Panel に「SSLの設
定」が含まれているかどうかで確認できます.
・ SSL に関して以下の設定が可能になってます:
ssl_forbid_method
使わないSSLメソッドのリスト(2: SSLv2, 3: SSLv3, t: TLSv1)
(デフォルトは<NULL>).
ssl_verify_server ON/OFF
SSLのサーバ認証を行う(デフォルトはOFF).
ssl_cert_file ファイル名
SSLのクライアント用PEM形式証明書ファイル(デフォルトは<NULL>).
ssl_key_file ファイル名
SSLのクライアント用PEM形式秘密鍵ファイル(デフォルトは<NULL>).
ssl_ca_path ディレクトリ名
SSLの認証局のPEM形式証明書群のあるディレクトリへのパス
(デフォルトは<NULL>).
ssl_ca_file ファイル名
SSLの認証局のPEM形式証明書群のファイル(デフォルトは<NULL>).
ただし「SSLEAY_VERSION_NUMBER >= 0x0800」な環境でないと無駄なコードが増
えるだけなので, configure時にdisableしておいたほうがよいでしょう.
また実際に認証を行う場合, ssl_ca_pathまたはssl_ca_fileで, サーバの鍵に
署名している認証局の証明書を (ssl_verify_serverのON/OFFに関係無く) 指定
しないとサーバ認証は成功しません。
通常使われている認証局の証明書は以下のところなどから入手できます。
* mozillaのソースに含まれている
mozilla/security/nss/lib/ckfw/builtins/certdata.txt
から添付の ruby script で *.pemファイルとしてとりだしたもの
% ruby certdata2pem.rb < certdata.txt
でカレントディレクトリに *.pemファイルをとりだし
opensslの c_rehash コマンドで hash symlink を作成します。
このディレクトリを ssl_ca_path に設定することができます。
もしくは、*.pem をまとめた一つのファイルを作成しておけば
それを ssl_ca_file に設定することができます。
* mod_sslのソースに含まれている pkg.sslcfg/ca-bundle.crt
これは PEMなので、このファイルのフルパス名を ssl_ca_file に
設定することができます。
・ バージョン 0.9.5 以降の OpenSSL ライブラリは, 乱数を初期化するために幾つか
のシードを設定する必要があります.
デフォルトでは /dev/urandom があればそれを利用しますが, 無ければ w3m 内部
で生成します. もし, EGD (Entropy Gathering Daemon) または PRNGD (Pseudo
Random Number Generator Daemon) が利用できる環境でこれを使いたい場合は,
USE_EGD マクロをチェックしてみてください.
・ URL
OpenSSL - http://www.openssl.org/
PRNGD - http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html
----------------------------------------------------------------
#!/usr/bin/ruby
# Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
# All rights reserved.
# This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of
# the Ruby's licence.
#
# certdata2pem.rb
while line = $stdin.gets
next if line =~ /^#/
next if line =~ /^\s*$/
line.chomp!
if line =~ /CKA_LABEL/
label,type,val = line.split(' ',3)
val.sub!(/^"/, "")
val.sub!(/"$/, "")
fname = val.gsub(/\//,"_").gsub(/\s+/, "_").gsub(/[()]/, "=") + ".pem"
next
end
if line =~ /CKA_VALUE MULTILINE_OCTAL/
data=''
while line = $stdin.gets
break if /^END/
line.chomp!
line.gsub(/\\([0-3][0-7][0-7])/) { data += $1.oct.chr }
end
open(fname, "w") do |fp|
fp.puts "-----BEGIN CERTIFICATE-----"
fp.puts [data].pack("m*")
fp.puts "-----END CERTIFICATE-----"
end
puts "Created #{fname}"
end
end
system("c_rehash", ".")
+57
View File
@@ -0,0 +1,57 @@
クッキーサポートについて
(2000/11/07) 岡部克也
okabek@guitar.ocn.ne.jp
・ version 0 (参照: http://www.netscape.com/newsref/std/cookie_spec.html) と,
version 1 (参照: http://www.ics.uci.edu/pub/ietf/http/rfc2109.txt,
http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt)
のクッキーをサポートしています.
・ クッキーのサポートは configure スクリプトの実行時に自動的に選択されます。
もしうまく動かないときは, config.h をチェックしてみてください. クッキーを利
用するためには, config.h で USE_COOKIE マクロが定義されている必要がありま
す.
なお、もしクッキーをサポートしたくない場合は --disable-cookie オプションを
付けて configure スクリプトを実行して下さい。
・ Option Setting Panel (通常 `o' キーにバインドされている), または起動オプシ
ョン (-cookie, -no-cookie) で使用するか否かを選択できます.
・ Option Setting Panel でクッキーを受け付けないようにする事もできます.
この場合, 以後のサーバから送られてくる全てのクッキーはリジェクトされますが,
既に受け取っているクッキーについては継続して使用されます.
・ C-k でクッキー一覧が表示できます. この画面で, クッキー毎に使用するか否かを
選択できます.
・ 2000/10/24 の版から, Option Setting Panel でクッキーを受け付ける (または受
け付けない) ドメイン (のリスト) を設定できるようになりました. 以下のフォー
マットで指定します:
domain-list = domains
| ""
domains = domain
| domain + "," + domains
domain = "." + domain-name ; ドメイン名とマッチ
| host-domain-name ; HDN とマッチ
| ".local" ; . を含まない全ての HDN にマッチ
| "." ; 全ての HDN にマッチ
(HDN: host domain name)
例として, 特定のドメイン (.xxx.or.jp) のクッキーのみを受け付けたい場合は,
┌────────────────────────────────────┐
│クッキーの設定 │
│ │
│クッキーを使用する (*)ON ( )OFF │
│クッキーを受け付ける (*)ON ( )OFF │
│問題のあるクッキーでも受け付ける [discard] │
│クッキーを受け付けないドメイン [. ] │
│クッキーを受け付けるドメイン [.xxx.or.jp ] │
│ [OK] │
└────────────────────────────────────┘
のように設定します.
+184
View File
@@ -0,0 +1,184 @@
cygwin で w3m を使う
(2003/02/17) 渡邉勝之
knabe@sannet.ne.jp
Windows で w3m を動かすためには,Windows 上の UNIX互換環境である Cygwin が
必要です.
Cygwin に関する情報は http://cygwin.com/ を参照してください.
* ビルド
w3m-0.2 以降から cygwin 向けの修正パッチが取り込まれたため,cygwin-1.1.4
以降の環境であれば特に問題なくビルドできます.Net Release 前の B18, B19,
B20あたりでもビルドできるはずですが,確認はされていません.
(*) Cygwin B20.1 の環境では
LOCAL_LIBRARIES に -luser32 をつける必要があります。
なお,termcap ないし ncurses パッケージは最新のものを使ってください.特
に termcap を使う場合,古いパッケージは /etc/termcap の cygwin のエント
リにバグがあり,表示がおかしくなります.この問題は termcap-20001020-1 で
修正されているため,これ以降のバージョンを使用してください.
ビルドする際には, 必ず ./configure してから make してください.以下で説
明するマクロが定義されなくなるため,正常に動作しなくなります.また,正常
にビルドできない,正常に動作しない場合には,バグ報告をする前に以下の点を
チェックしてください.
o make veryclean してから再度 ./configure && make してみる.
o gcc, binutils が正常にインストールされているかを確認する.
cygwin の setup.exe に問題があり,パッケージファイルのダウンロード
に失敗しても,エラーの報告をしないで正常終了してしまうことがあるよ
うです.その場合には再度 setup をやりなおしてください.
また Win95/98/ME では,環境変数 CYGWIN に 'ntsec' もしくは 'ntea' が含ま
れていると,シェルスクリプトに実行属性がつかなくなるため,configure に失
敗するようです.w3m に限らず,他にも問題が発生するという報告があるため,
Win95/98/ME で Cygwin を使用する場合には,最初に cygwin1.dll をロードす
る際の環境変数 CYGWIN から ntsec, ntea の記述を取り除いてください.
* マクロ
config.h には,Cygwin 環境向けに以下のマクロを定義してあります.
o USE_BINMODE_STREAM
-dump, -dump_{head,source,both,extra} 時の stdout への出力をバイナリ
モードで行います.cygwin-1.3.11 以降では不要になっているはずですが,
安全側に振っておくために残しています.
Cygwin, EMX 環境で共通です.
o SUPPORT_DOS_DRIVE_PREFIX
'C:', 'C:/', 'file://C:/', 'file://C|/' などのドライブレターを含むパ
スを認識し,ファイル名として扱う機能を有効にします.
Cygwin, EMX 環境で共通です.
o SUPPORT_NETBIOS_SHARE
'//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 形式の
NETBIOS 共有資源へのアクセスを ftp: スキーマではなく file: スキーマ
として扱う機能を有効にします.
Cygwin 環境に特有です.
o SUPPORT_WIN9X_CONSOLE_MBCS
Win9X 系の DOS プロンプトで,検索およびフォームへの一行エディタ入力
時に日本語 IME 経由の入力をサポートします.
ただし,Win9X 系の DOS プロンプトの実装および Cygwin の tty レイヤー
の問題により,ローカルコンソールで TERM=cygwin かつ環境変数 CYGWIN
に 'tty' が含まれない場合のみ IME からの入力を許可しています.
なお,NT 系ではこのマクロを無効にしても動作は変更されず,ローカルコ
ンソールであれば IME による日本語入力が可能です.
LANG=JA 指定時の Cygwin 環境に特有です.
* Native Application との連携
Cygwin 環境でビルドした w3m から Win32 Native アプリケーションを起動する
場合,パスの記述形式の違いによって,ファイルが見つからないなどのエラーが
発生します.
o ローカルCGI
Cygwin 環境でビルドすると,$LIB (通常は /usr/local/lib/w3m/cgi-bin) 以下
にインストールされるローカル CGI は cygwin の /usr/bin/perl を使うように
設定されます.これに対し,Native アプリケーションの ActivePerl などを使
用する場合,以下のようなラッパースクリプトを用意し,$LIB 以下の各スクリ
プトを修正してください.
------ /usr/local/bin/winperl ------
#!/bin/sh
# wrapper script for Win32 Native Perl
PERL=/cygdrive/c/Perl/bin/perl.exe
case $1 in
-*)
;;
*)
SCRIPT=`cygpath -w $1`
shift
;;
esac
exec "$PERL" "$SCRIPT" $@
------------------------------------
※PERL= には Cygwin 環境の内部から見た Native Perl のパスを記述してくだ
さい.cygpath ユーティリティは cygwin パッケージに入っています.
なお,ディレクトリリストだけであれば,オプション設定で「ディレクトリリス
トに外部コマンドを使う」を NO にすれば,ローカル CGI を使わずにディレク
トリのブラウズを行います.
o エディタ
w3m はテキストエリアの内容編集などに外部エディタを使用しますが,外部エデ
ィタに Win32 Native アプリケーションを使う場合,以下のスクリプトを外部エ
ディタに指定してください.
------ /usr/local/lib/w3m/winedit ------
#!/bin/sh
EDITOR='/cygdrive/c/Program Files/sakura/sakura.exe'
FILE=`cygpath -a -w $1`
exec "$EDITOR" "$FILE"
----------------------------------------
※EDITOR= には Cygwin 環境の内側から見た Native アプリケーションのパスを
記述してください.
なお,NT 系で inetd をサービスとして動かしていて,localhost に telnet で
接続している場合には,「デスクトップとの対話をサービスに許可」を ON にし
ておかなければ window が表示されません.
* 既知のバグ
以下は,Cygwin 環境で w3m を動かした場合の問題点です.
o -dump, -dump-source 時に LF -> CR+LF の変換が行われることがある.
コンパイル時にマクロ USE_BINMODE_STREAM が define されていない可能性が
あります.
きちんと configure したうえでコンパイルしなおすか,環境変数 CYGWIN に
binmode を設定してください.
o Win9X 系の DOS プロンプトで IME 経由の入力ができない.
環境変数 CYGWIN に 'tty' が含まれているときには,Cygwin の tty レイヤ
の問題を回避するために IME 経由の入力を禁止しています.環境変数 CYGWIN
から 'tty' を削除してください.
o Win9X 系の DOS プロンプトで IME が ON になっているとカーソルが効かない.
Win9X の DOS プロンプトと Cygwin の tty レイヤーの実装の問題です.
代わりに C-f, C-b, C-p, C-n を使ってください.
o NT 系のコマンドプロンプトで画面制御がおかしくなる.
「レイアウト」タブで画面バッファのサイズとウィンドウのサイズを違う値に
してバックスクロールができるように設定していると,画面制御がおかしくな
ることがあるようです.
o DOS プロンプト,コマンドプロンプトでマウスが使えない.
DOS プロンプト「編集オプション」/コマンドプロンプトの「オプション」で
「簡易編集モード」が ON になっていると,マウスイベントが w3m に渡され
ません.OFF に設定してください.
o DOS プロンプト,コマンドプロンプトでマウスボタンに対する反応がおかしい.
cygwin-1.3.15 までの環境では,マウスの右と中央ボタンのエスケープシー
ケンスが入れ替わっていました.これは cygwin-1.3.16-1 で修正されていま
すが,w3m 側のバージョン判定が完全ではないため,使用する環境でビルド
するようにしてください.
* その他
Cygwin 環境では,DOS プロンプト/コマンドプロンプトを使うよりも,inetd を
あげて,ローカルに TeraTerm, PuTTY などの telnet クライアント経由でログ
インする,ないしは rxvt, cygterm を使用するほうが快適です.
o rxvt:
rxvt on Cygwin
http://hp.vector.co.jp/authors/VA021953/rxvt/
compiled package
http://matsu-www.is.titech.ac.jp/~sohda/cygwin/dist/
o cygterm:
CygTerm - Yet another Cygwin console
http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/
+68
View File
@@ -0,0 +1,68 @@
w3m用英和辞典検索機能について
1. はじめに
'webster' コマンドなどのように辞書を引くためのコマンドをお持ちの
場合には,w3m の中からそれを使うことができます.この機能は,
るびきちさん(rubikitch@ruby-lang.org)によるものをもとに
Tushar Samant (scribble at pobox.com)が修正をくわえました。
2. インストール
この機能を使うためには,コンパイルオプションを手で書きかえて
コンパイルしなおす必要があります.configure を実行して config.h
が生成された後,config.h を編集して
#undef USE_DICT
#define USE_DICT
に変更し,w3m をコンパイルしなおしてください.
w3m/0.3+cvs-1.373以降は、defaultでUSE_DICTがdefineされます。
それから,文字列をうけとってその結果をかえすCGIプログラムを
インストールします。
つぎのような方法があります
* もし 'webster'というコマンドがあればいかのような内容の'w3mdict'という
スクリプトをつくります。
#!/bin/sh
echo Content-type: text/plain
echo
webster $QUERY_STRING
これを lcoal CGIとしてインストールします (w3mマニュアルの local CGI
のセクションをみてください) そして w3mのオプションページで
辞書設定を設定してください。
* もし文字列をGoogleで検索する機能がつかいたい場合、
以下のような local CGIスクリプトがつかえます。
#!/bin/sh
google_q='http://google.com/search?btnG=Google&q'
cat <<_END_
Content-type: text/plain
W3m-control: GOTO $google_q=$QUERY_STRING
W3m-control: DELETE_PREVBUF
_END_
これのパスを辞書引きコマンドのURLとして設定してください。
3. 使いかた
次の2つのコマンドが使えるようになります.
ESC w 単語を入力し,それを辞書で引いて表示します.
ESC W バッファ内の現在カーソルがある単語を辞書で引き,表示します.
これらのキーを変更するには、~/.w3m/keymapのDICT_WORDおよびDICT_WORD_AT
の行を変更してください。
+145
View File
@@ -0,0 +1,145 @@
ABORT 確認せずにw3mを終了します
ACCESSKEY Accesskey メニューを立ち上げます
ALARM アラームを設定します
ADD_BOOKMARK 現在見ているページをブックマークに追加します
BACK 一つ前のバッファを表示します
BEGIN 文書のいちばん上の行に移動します
BOOKMARK ブックマークを読み込みます
CENTER_H カーソルのある位置を行の中央に移動します
CENTER_V カーソルのある行を画面の中央に移動します
CHARSET 現在表示されている文書の文字コードを変更します
CLOSE_TAB 現在のタブを閉じます
CLOSE_TAB_MOUSE マウスカーソルの位置のタブを閉じます(マウス操作用)
COMMAND w3mのコマンドを実行します
COOKIE クッキー一覧を表示します
DEFAULT_CHARSET デフォルトの文書の文字コードを変更します
DEFINE_KEY キー入力とコマンドの対応を定義します
DELETE_PREVBUF 前のバッファを消去します(主に local-CGI 用)
DICT_WORD 入力した単語を辞書コマンドで調べます
DICT_WORD_AT カーソル位置の単語を辞書コマンドで調べます
DISPLAY_IMAGE 画像の読込/表示を再開します
DOWN 画面を1行下にスクロールします
DOWNLOAD 文書のソースをファイルに保存します
DOWNLOAD_LIST ダウンロード状況の一覧を表示します
EDIT ソースファイルをエディタで編集します
EDIT_SCREEN バッファの表示内容をエディタで編集します
END 文書のいちばん下の行に移動します
EXEC_SHELL シェルコマンドを実行します
EXIT 確認せずにw3mを終了します
EXTERN 外部ブラウザを使って表示します
EXTERN_LINK 現在のリンク先を,外部ブラウザを使って表示します
FRAME <FRAME>タグの指す文書を1つの文書に変換して表示します
GOTO URLを指定して開きます
GOTO_LINE 画面下で行番号を入力し,そこで指定した行に移動します
GOTO_LINK リンクが指す先の文書を読みこみます
GOTO_RELATIVE 相対URLを指定して開きます
HELP ヘルプファイルを表示します
HISTORY URL履歴を表示します
INFO 現在の文書に関する情報を表示します
INIT_MAILCAP mailcap を再読み込みします(主に local-CGI 用)
INTERRUPT 文書の読み込みを中断します
ISEARCH ファイルの末尾にむかってインクリメンタルサーチします
ISEARCH_BACK ファイルの先頭にむかってインクリメンタルサーチします
LEFT 画面全体を1文字左にずらします
LINE_BEGIN 行頭に移動します
LINE_END 行末に移動します
LINE_INFO ページ中での現在位置を表示します
LINK_BEGIN 最初のリンクに移動します
LINK_END 最後のリンクに移動します
LINK_MENU Link 要素一覧のメニューを立ち上げます
LIST リンクと画像の一覧を表示します
LIST_MENU リンク先一覧のメニューを立ち上げ、リンク先の文書を読みこみます
LOAD ローカルファイルを指定して開きます
MAIN_MENU メニューを立ち上げます
MARK マークを設定/解除します
MARK_MID Message-ID風の文字列を,news:のリンクにします
MARK_URL URL風の文字列をリンクにします
MARK_WORD カーソルのある語をリンクにします
MENU メニューを立ち上げます
MENU_MOUSE マウスカーソルの位置でメニューを立ち上げます(マウス操作用)
MOUSE_TOGGLE マウスの有効/無効をトグルする
MOVE_DOWN カーソルを下に移動します(改ページ時には半ページスクロール)
MOVE_DOWN1 カーソルを下に移動します(改ページ時には1行スクロール)
MOVE_LEFT カーソルを左に移動します(左端の場合には半画面分シフト)
MOVE_LEFT1 カーソルを左に移動します(左端の場合には1文字分シフト)
MOVE_LIST_MENU リンク先一覧のメニューを立ち上げ、カーソルを移動します
MOVE_MOUSE カーソルをマウスカーソルの位置に移動します(マウス操作用)
MOVE_RIGHT カーソルを右に移動します(右端の場合には半画面分シフト)
MOVE_RIGHT1 カーソルを右に移動します(右端の場合には1文字分シフト)
MOVE_UP カーソルを上に移動します(改ページ時には半ページスクロール)
MOVE_UP1 カーソルを上に移動します(改ページ時には1行スクロール)
MSGS エラーメッセージの一覧の表示
NEW_TAB 新しいタブを開きます
NEXT 次のバッファを表示します
NEXT_DOWN カーソルの下側にあるリンクに移動します
NEXT_LEFT カーソルの左側にあるリンクに移動します
NEXT_LEFT_UP カーソルの左側(無ければ前の行以前)にあるリンクに移動します
NEXT_LINK 次のリンクに移動します
NEXT_MARK 一つ後のマークに移動します
NEXT_PAGE 次のページを表示します
NEXT_RIGHT カーソルの右側にあるリンクに移動します
NEXT_RIGHT_DOWN カーソルの右側(無ければ次行以降)にあるリンクに移動します
NEXT_TAB 次のタブに移動します
NEXT_UP カーソルの上側にあるリンクに移動します
NEXT_VISITED 次の訪れたことのあるリンクに移動します
NEXT_WORD 次の単語に移動します
NOTHING 何もしません
NULL 何もしません
OPTIONS オプション設定パネルを表示します
PEEK 現在の文書のURLを表示します
PEEK_IMG 現在カーソルがあるリンクを含む画像そのもののURLを表示します
PEEK_LINK リンクが指す先のURLを表示します
PIPE_BUF バッファの内容をパイプに渡します
PIPE_SHELL コマンドを実行し,結果を読みこみながら表示します
PREV 前のバッファを表示します
PREV_LINK 前のリンクに移動します
PREV_MARK 一つ前のマークに移動します
PREV_PAGE 前のページを表示します
PREV_TAB 前のタブに移動します
PREV_VISITED 前の訪れたことのあるリンクに移動します
PREV_WORD 前の単語に移動します
PRINT バッファの表示内容をファイルに保存します
QUIT w3mを終了します
READ_SHELL コマンドを実行し,結果を全部読んでから表示します
REDO Undo を取り消します
REDRAW 再描画します
REG_MARK 正規表現で指定された文字列を全てマークします
REINIT 設定ファイルを再読込します。
RELOAD バッファを再度読み込みます
RESHAPE 再レンダリングする
RIGHT 画面全体を1文字右にずらします
SAVE 文書のソースをファイルに保存します
SAVE_IMAGE リンクが指す画像をファイルに保存します
SAVE_LINK リンクが指す先の文書をファイルに保存します
SAVE_SCREEN バッファの表示内容をファイルに保存します
SEARCH ファイル末尾に向かって正規表現を検索します
SEARCH_BACK ファイルの先頭に向かって正規表現を検索します
SEARCH_FORE ファイル末尾に向かって正規表現を検索します
SEARCH_NEXT 次を検索します
SEARCH_PREV 前を検索します
SELECT バッファ選択モードに入ります
SELECT_MENU バッファ選択メニューを立ち上げます
SETENV 環境変数を設定します
SET_OPTION オプションを設定します
SHELL シェルコマンドを実行します
SHIFT_LEFT 画面全体を左にずらします
SHIFT_RIGHT 画面全体を右にずらします
SOURCE HTMLのソースを表示します
STOP_IMAGE 画像の読込/表示を停止します
SUBMIT フォームにサブミットします
SUSPEND サスペンド
TAB_GOTO URLを指定して新しいタブで開きます
TAB_GOTO_RELATIVE 相対URLを指定して新しいタブで開きます
TAB_LEFT 現在のタブを左に移動します
TAB_LINK リンクが指す先の文書を新しいタブで開きます
TAB_MENU タブ選択メニューを立ち上げます
TAB_MOUSE マウスカーソルの位置のタブに移動します(マウス操作用)
TAB_RIGHT 現在のタブを右に移動します
UNDO 最後のカーソル移動を取り消します
UP 画面を1行上にスクロールします
VERSION w3m のバージョンを表示します
VIEW HTMLのソースを表示します
VIEW_BOOKMARK ブックマークを読み込みます
VIEW_IMAGE リンクに対応する画像を表示します
WHEREIS ファイル末尾に向かって正規表現を検索します
WRAP_TOGGLE 折り返し検索モードを切り換えます
+277
View File
@@ -0,0 +1,277 @@
w3m でインライン画像を表示
(2002/02/04) 坂本浩則
hsaka@mth.biglobe.ne.jp
(2002/10/16) 伊東宏之
ZXB01226@nifty.com
はじめに
w3m でインライン画像を表示する拡張です。
機能
・X11 上の端末(xterm,kterm,rxvt,...)または Linux の framebuffer 上に
画像(GIF,PNG,JPEG 等)を表示します。
・img タグで指定されたインライン画像を表示できます。
width,height 属性に応じて必要な領域を確保してレンダリングします。
align 属性に対応しています。
・Content-type: image/* な画像ファイルを直接表示できます。
・map タグに対応しています。
area タグの shape, coords 属性を認識し、メニュー表示から選択できます。
・img タグの ismap 属性に対応しています。
座標値を ?<x>,<y> として URL に追加して送ります。
・input タグの type=image 属性で指定されたインライン画像を表示できます。
座標値を <name>.x=<x>&<name>.y=<y> として送ります。
・非同期に画像を読み込みます。
・画像をキャッシュできます。
・GdkPixbuf を利用した場合 GIF animation を表示できます。
キー操作
DISPLAY_IMAGE
画像の読込/表示を再開します。
STOP_IMAGE
そのバッファの画像の読込/表示を停止します。
SET_OPTION display_image=toggle
画像の読込/表示を切替えます。
デフォルトのキーマップはありませんので、~/.w3m/keymap に
keymap X DISPLAY_IMAGE
keymap C-c STOP_IMAGE
keymap t SET_OPTION display_image=toggle
の様に記述して使用してください。
コマンドラインオプション
-ppc <pixel>
一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。
正しく設定されない場合は端末の font の大きさに必ず合わせてください。
-ppl <pixel>
一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。
正しく設定されない場合は端末の font の大きさに必ず合わせてください。
オプションパネル
pixel_per_char
一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。
正しく設定されない場合は端末の font の大きさに必ず合わせてください。
pixel_per_line
一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。
正しく設定されない場合は端末の font の大きさに必ず合わせてください。
display_image
インライン画像を表示します。デフォルトは ON。
auto_image
インライン画像を自動で読み込みます。デフォルトは ON。
OFF の場合は、コマンド DISPLAY_IMAGE で読み込みを開始します。
max_load_image
画像を読み込む時の最大プロセス数。デフォルトは 4。1~8 まで設定可能。
ext_image_viewer
コマンド VIEW_IMAGE('I')の場合や Content-type: image/* である
画像ファイルを外部ビューワで表示します。デフォルトは ON。
OFF の場合は、インライン画像として直接表示します。
image_scale
画像のスケールを指定します。デフォルトは 100(%)。
小さい font と共に使う場合には値を小さくすると有用。
imgdisplay
インライン画像を表示するためのコマンド。デフォルトは w3mimgdisplay。
下記の "w3mimgdisplay の設定" を参考にしてオプション設定してください。
必要なもの
・X11 使用時
* GdkPixbuf (0.16 以上推奨)
または
* Imlib-1.9.8以上 (1.9.10 以上推奨)
ftp://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/
* libungif-4.1.0b1 以上
ftp://prtr-13.ucsc.edu/pub/libungif/
http://prtr-13.ucsc.edu/~badger/software/libungif/
以下は Imlib のインストールに必要
* libjpeg
ftp://ftp.uu.net/graphics/jpeg/
* libpng
http://www.libpng.org/pub/png/libpng.html
http://libpng.sourceforge.net/
* libtiff
http://www.libtiff.org/
* zlib-1.1.4
http://www.gzip.org/zlib/
* netpbm
http://netpbm.sourceforge.net/
・Linux framebuffer 使用時
* Linux の 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR/DIRECT-COLOR,
8bpp PACKED-PIXELS PSEUDO-COLOR framebuffer を利用できる環境
* GdkPixbuf (0.16 以上推奨) または Imlib2 (1.0.6 以上推奨)
w3mimgdisplay の設定
w3mimgdisplay は以下のオプションを受け付けますので端末に合わせて
オプション設定パネルで(または -o オプションで)設定してください。
-x <offset_x>
端末上に画像を表示する X 方向の原点。X11 で利用する場合デフォルト
は 2 ですが、xterm や kterm ではスクロールバーの幅を計算して加え
ようとします。(正しく出来ないかもしれません。)
Eterm では 5 にすべきかもしれません。
Linux framebuffer で利用する場合デフォルトは 0 です。
-y <offset_y>
端末上に画像を表示する Y 方向の原点。デフォルトは、X11 では 2、
Linux framebuffer では 0。
Eterm では 5 にすべきかもしれません。
-bg <background>
端末の背景色。デフォルトは、X11 では自動設定、Linux framebuffer
では #000000 (黒)。
#RRGGBB で指定する場合は # をエスケープして設定してください。
例)
w3m -o 'imgdisplay=w3mimgdisplay -x 5 -bg "#cccccc"'
その他
・GIF animation は w3m からの再描画要求に応じてフレームを書き換える
だけなので勝手に動いてはくれません。絵を動かすためには 'h', 'l' 等
の適当なキーを連打してください。
・framebuffer 描画関係には、下記 URI のコードを利用しました。
http://www.sainet.or.jp/~yamasaki/download/fb-sample.tar.gz
更新記録
2002/02/04
* ドキュメント改訂
2002/02/01 w3m-0.2.5+cvs-1.287
* 本家の CVS へマージ。
2002/01/31 w3m-0.2.4-img-2.2
* w3m-0.2.4+cvs-1.278 ベース。
2002/01/29 w3m-0.2.4-img-2.1
* w3m-0.2.4+cvs-1.268 ベース。
2002/01/28 w3m-0.2.4-img-2.0
* w3m-0.2.4+cvs-1.265 ベース。
* pixel_per_char, pixel_per_line を自動設定するようにした。
* 端末の背景色を自動設定するようにした。
* 画像処理関係のソースを image.c に分離。
2002/01/08 w3m-0.2.4-img-1.18
* w3m-0.2.4 ベース。
2001/12/29 w3m-0.2.3.2-img-1.17
* w3m-0.2.3.2+cvs-1.196 ベース。
2001/12/25 w3m-0.2.3.2-img-1.16.1
* [w3m-dev 02698] Thanks > かずひこ@kondara.org さん
2001/12/22 w3m-0.2.3.2-img-1.16
* w3m-0.2.3.2 ベース。
2001/12/20 w3m-0.2.3.1-img-1.15
* w3m-0.2.3.1 ベース。
* Content-Transfer-Encoding で送られて来た画像を表示可能にした。
2001/11/29
* ChangLog 1.71 時点の CVS ソースに対してマージ開始
2001/11/17 w3m-0.2.2-img-1.14
* w3m-0.2.2 ベース。
2001/11/14 w3m-0.2.1-inu-1.6-img-1.13
* w3m-0.2.1-inu-1.6 ベース。
2001/11/05 w3m-0.2.1-inu-1.5-img-1.12
* w3m-0.2.1-inu-1.5 ベース。
* <area><map> が使えなくなっていたバグの修正。
* kterm 上で xwnmo を使った場合に対応。
2001/10/03 w3m-0.2.1-inu-1.4-img-1.11
* w3m-0.2.1-inu-1.4 ベース。
* 標準入力から読み込む時に落ちるバグの修正。
* configure の修正。Thanks > 深川さん。
2001/08/01 w3m-0.2.1-img-1.10
* 画像の位置の微調整。
* スケールのバグ修正。
2001/07/31 w3m-0.2.1-img-1.9
* initImgdisplay() の修正。Thanks > David.
2001/07/29 w3m-0.2.1-img-1.8
* configure の修正。Thanks > 坂根さん。
2001/07/28 w3m-0.2.1-img-1.7
* configure, XMakefile が patch に入って無かった。
* 画像を表示しない場合の処理をオリジナルに近づけた。
* [w3m-dev 02121] に対応。
2001/07/27 w3m-0.2.1-img-1.6
* README.img を doc-jp へ移動。doc/README.img を作成。
* インライン画像対応部分を USE_IMAGE マクロで分離。
* configure でインライン画像対応を選択できる様にした。
* configure で Imlib をチェックする様にした。
2001/07/26 w3m-0.2.1-img-1.5
* w3mimgdisplay は必要になるまで立ち上げない様にした。
* w3mimgdisplay が落ちた時に、w3mimgdisplay を再立ち上げできる様にした。
* <img align=middle の場合の計算間違いの修正。
* [w3m-dev 02118] に対応。
* funcname.tab が間違っていたので修正。
2001/07/25 w3m-0.2.1-img-1.4
* w3mimgdisplay を環境変数 WINDOWID を見る様に改良。
また、text window の推量部分も改良。
* image タグを img タグと同じものとして追加。
* [w3m-dev 02090], [w3m-dev 02097] に対応。
2001/07/14 w3m-0.2.1-img-1.3
* ext_image_viewer が OFF の場合は画像を直接フレーム表示可能にした。
* Option Panel が SEGV するバグの修正。
2001/07/13 w3m-0.2.1-img-1.2
* 画像のスケールを指定出来る様にした。
* SIGUSR1 のブロックに関する修正。
2001/07/12 w3m-0.2.1-img-1.1
* キー入力中以外は SIGUSR1, SIGWINCH をブロックする様にした。
* バグ修正。
2001/07/11 w3m-0.2.1-img-1.0
* MGL 版の画像読み込みを採用。
2001/07/10 w3m-0.2.1-img-0.5
* 描画の高速化。w3mimgdisplay で不要な XSync() を止めた。
不要な drawImage() を止めた。
2001/07/08 w3m-0.2.1-img-0.4
* w3mimgdisplay での Window の取得や offset_x のデフォルト値の改良。
* <img align=middle の場合の計算間違いの修正。
* <img align=left|center|right では <div></div> を使う様にしてみた。
* w3mimgdisplay では SIGINT を無視する様にした。
* w3mimgsize もオプション設定できる様にした。
2001/07/07 w3m-0.2.1-img-0.3
* kterm に限らず、X11 上の端末では画像を描画できる様にした。
2001/07/06 w3m-0.2.1-img-0.2
* README.img を作成。
* kterm-6.2.0-img-0.2.patch を w3m-0.2.1-img-0.2.patch に含める様にした。
* コードの整理、安全側への修正
2001/07/04 w3m-0.2.1-img-0.1
* バージョン管理開始。
* Imlib 対応版。
2001/06/30
* XPM 版でほぼ実装完了。
2001/06/19
* MGL 版に刺激を受けて img への対応のテストを開始。
-----------------------------------
坂本 浩則 <hsaka@mth.biglobe.ne.jp>
http://www2u.biglobe.ne.jp/~hsaka/
+58
View File
@@ -0,0 +1,58 @@
w3m のキーバインドについて
(1999/06/30) 坂本 浩則
hsaka@mth.biglobe.ne.jp
~/.w3m/keymap にキーバインドを定義できます。
指定方法は、
keymap キー コマンド [引数]
です。
例は keymap.default や keymap.lynx を見てください。
設定できるコマンドは README.func を見てください。
複数文字からなるエスケープシーケンスは、
Escape 文字
Escape [ 文字, Escape O 文字
Escape [ 数字 ~, EScape [ 数字 数字 ~
のみ設定可能です。
特殊文字は、
Ctrl : C-, ^
Escape : ESC-, M-, \e, ^[
Space : SPC, ' '
Tab : TAB, \t, ^i, ^I
Delete : DEL, ^?
BackSpace: \b, ^h, ^H
NewLine : \n, ^j, ^J
Return : \r, ^m, ^M
Bell : \a, ^g, ^G
Up : UP, ^[[A
Down : DOWN, ^[[B
Right : RIGHT, ^[[C
Left : LEFT, ^[[D
^ : \^
として表すことができます。
また、端末によっては、
Insert : ^[[2~
PageUp : ^[[5~
PageDown: ^[[6~
F1 : ^[[11~
F2 : ^[[12~
F3 : ^[[13~
F4 : ^[[14~
F5 : ^[[15~
F6 : ^[[17~
F7 : ^[[18~
F8 : ^[[19~
F9 : ^[[20~
F10 : ^[[21~
Help : ^[[28~
なども使用可能かもしれません。
(各キーのコードは Ctrl-V + キー で確認できます。)
+669
View File
@@ -0,0 +1,669 @@
国際化/マルチリンガル化 w3m
2003/03/08
坂本 浩則
はじめに
w3m を国際化/マルチリンガル化しました。w3m-0.4.1 に対する拡張版を
以下に置いてあります。
http://www2u.biglobe.ne.jp/~hsaka/w3m/index-ja.html#m17n
patch/w3m-0.4.1-m17n-20030308.tar.gz
patch/README.m17n-ja
まだ開発版であり、(私が日本語しか解さないため)十分なテストはできて
いませんが興味ある方はお試しください。
現在のところ以下の機能があります。
扱える文字コード
・日本語
EUC-JP - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212
(EUC-JISX0213) (JIS X 0213)
ISO-2022-JP - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212, etc.
ISO-2022-JP-2 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212,
GB 2312, KS X 1001, ISO 8859-1, ISO 8859-7, etc.
ISO-2022-JP-3 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0213, etc
Shift_JIS(CP932) - US_ASCII, JIS X 0208, JIS X 0201, CP932 の拡張文字
Shift_JISX0213 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0213
・中国語(簡体字)
EUC-CN(GB2312) - US_ASCII, GB 2312
ISO-2022-CN - US_ASCII, GB 2312, CNS-11643-1,..7, etc.
GBK(CP936) - US_ASCII, GB 2312, GBK
GB18030 - US_ASCII, GB 2312, GBK, GB18030, Unicode
HZ-GB-2312 - US_ASCII, GB 2312
・中国語(台湾、繁体字)
EUC-TW - US_ASCII, CNS 11643-1,..16
ISO-2022-CN - US_ASCII, CNS-11643-1,..7, GB 2312, etc.
Big5(CP950) - Big5
HKSCS - Big5, HKSCS
・韓国語
EUC-KR - US_ASCII, KS X 1001 Wansung
ISO-2022-KR - US_ASCII, KS X 1001 Wansung, etc.
Johab - US_ASCII, KS X 1001 Johab
UHC(CP949) - US_ASCII, KS X 1001 Wansung, UHC
・ベトナム語
TCVN-5712 VN-1, VISCII 1.1, VPS, CP1258
・タイ語
TIS-620 (ISO-8859-11), CP874
・その他
US_ASCII, ISO-8859-1 10, 13 15,
KOI8-R, KOI8-U, NeXT, CP437, CP737, CP775, CP850, CP852, CP855, CP856,
CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP869, CP1006,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257
・Unicode (UCS-4)
UTF-8, UTF-7
注意)
* JIS X 0201 のローマ字部分と GB 1988(中国語ASCII) は US_ASCII として
扱います。これは、ISO-2022(7bit) で表されていると HTML のタグ部分が
扱えなくなるからです。その他の US_ASCII の variant はそのままです。
* JIS C 6226(旧JIS) は JIS X 0208 として扱います。
* HZ-GB-2312 の '~\n' は対応していません。
表示
多言語表示させるためには現在のところ以下の方法があります。
(1) kterm + ISO-2022-JP/CN/KR
* kterm は kterm-6.2.0 に対して、
http://www.st.rim.or.jp/~hanataka/kterm-6.2.0.ext02.patch.gz
の patch をあてると、JIS X 0213, CNS 11643 等が使用可能になります。
* kterm に対して -fl オプションまたは ~/.Xdefaults 等で fontList を
設定します
-fl "*--16-*-jisx0213.2000-*,\
*--16-*-jisx0212.1990-0,\
*--16-*-ksc5601.1987-0,\
*--16-*-gb2312.1980-0,\
*--16-*-cns11643.1992-*,\
*--16-*-iso8859-*"
JIS 以外のフォントは X11 (XFree86) や Mule の配布物に幾つかありますし、
Linux や FreeBSD の package からも使えます。
JIS X 0213 のフォントは、
http://www.mars.sphere.ne.jp/imamura/jisx0213.html
にあるものが使えます。
* w3m-m17n のオプション設定で表示コードを ISO-2022-JP (もしくは
ISO-2022-JP-2, KR, CN) にし、後述の strict_iso2022
(厳密な ISO-2022-JP/KR/CN を使う) を OFF にします。
(2) xterm + UTF-8
* xterm は XFree86 の最新版を使います。xterm-140 以降を推奨します。
http://www.clark.net/pub/dickey/xterm/xterm.html
* Unicode のフォントは
http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
http://openlab.ring.gr.jp/efont/
などにあります。
* xterm を -u8 -wc オプション付きで使用します。
フォントは、
-fn "*-medium-*--13-*-iso10646-1" \
-fb "*-bold-*--13-*-iso10646-1" \
-fw "*-medium-*-ja-13-*-iso10646-1"
の様に指定します。
* w3m-m17n のオプション設定で表示コードを UTF-8 にします。
後述の pre_conv (文書の読み込み時に文字コードを変換する) を
ON にしておく方が良いです。そうしておかない場合、
ISO 2022 系の多バイト文字集合(JIS)の一部を表示する場合、
レンダリングが崩れる可能性があります。
(3) mlterm + ISO-2022-JP/KR/CN or UTF-8
* Homepage
http://mlterm.sourceforge.net/
* エンコーディングを ISO-2022-JP/KR/CN または UTF-8 にします。
本当の多言語表示をさせるのは以上の方法だけですが、
EUC-JP の場合、中国語や ISO-8859-* を疑似的に表示させることもできます。
* kterm や日本語対応端末のフォントを JIS X 0213 にします。
# しなくてもいいのですが、かなり表現能力が落ちます。
* w3m-m17n のオプション設定で表示コードを EUC-JP にします。
後述の pre_conv, use_gb12345_map, use_jisx0213 を ON にします。
EUC-JP の SS3 (JIS X 0212) を解する端末の場合は、
use_jisx0212 も ON にします。
また、w3m-m17n は表示コードを切替えることも可能です。
端末がフォントを切替えられるならば文書の言語に従って表示コードと
フォントを切替えて使用することも可能です。
コマンドラインオプション
-I <優先文書コード>
-O <表示/出力コード>
基本的に MIME での charset としますが、以下の略号も受け付けます。
j(p): ISO-2022-JP
j(p)2: ISO-2022-JP-2
j(p)3: ISO-2022-JP-3
cn: ISO-2022-CN
kr: ISO-2022-KR
e(j): EUC-JP
ec,g(b): EUC-CN(GB2312)
et: EUC-TW
ek: EUC-KR
s(jis): Shift-JIS
sjisx0213: Shift-JISX0213
gbk: GBK
gb18030: GB18030
h(z): HZ-GB-2312
b(ig5): Big5
hk(scs): HKSCS
jo(hab): Johab
uhc: UHC
l?: ISO-8859-?
t(is): TIS-620(ISO-8859-11)
tc(vn): TCVN-5712 VN-1
v(iscii): VISCII 1.1
vp(s): VPS
ko(i8r): KOI8-R
koi8u: KOI8-U
n(ext): NeXT
cp???: CP???
w12??: CP12??
u(tf8): UTF-8
u(tf)7: UTF-7
オプションパネル
display_charset
表示用文字コード
document_charset
文書の標準の文字コード
auto_detect
文書の読み込み時に文字コードの自動判定を行う(デフォルト ON)
system_charset
システムの文字コード。設定ファイルやファイル名に使用する。
follow_locale
Locale(環境変数 LANG) に従って、システムの文字コードを設定する。
(デフォルト ON)
ext_halfdump
表示用文字コードで halfdump の出力を行う
search_conv
検索文字列を文書の文字コードに変換する(デフォルト ON)
use_wide
複数カラムの文字を使う(デフォルト ON)
use_combining
結合文字を使う(デフォルト ON)
use_language_tag
Unicode の言語タグを使う(デフォルト ON)
ucs_conv
Unicode を介したコード変換(デフォルト ON)
pre_conv
文書の読み込み時に文字コードを変換する(デフォルト OFF)
fix_width
文字幅の変わる変換をしない(デフォルト ON)
OFF にするとレンダリングが崩れる可能性がある。
use_gb12345_map
GB 12345 の Unicode マップを GB 2312 用に使う(デフォルト OFF)
ON にすると EUC-CN, HZ を EUC-JP や EUC-TW で出力する場合に有用。
use_jisx0201
ISO-2022-JP で JIS X 0201 Roman を使う(デフォルト OFF)
use_jisc6226
ISO-2022-JP で JIS C 6226:1978 (旧JIS) を使う(デフォルト OFF)
use_jisx0201k
JIS X 0201 Katakana を使う(デフォルト OFF)
OFF にすると通常は JIS X 0208 に変換される。
use_jisx0212
JIS X 0212:1990 (補助漢字) を使う(デフォルト OFF)
use_jisx0213
JIS X 0213:2000 (2000JIS) を使う(デフォルト OFF)
ON の場合、EUC-JP は EUC-JISX0213 相当。
OFF の場合、Shift_JISX0213 は純粋な Shift_JIS になる。
strict_iso2022
厳密な ISO-2022-JP/KR/CN を使う(デフォルト ON)
OFF にすると ISO 2022 系の文字集合は全て表示/出力する。
alt_entity
エンティティを ASCII の代替表現で表す(デフォルト ON)
OFF にすると ISO 8859-1 として扱う。
graphic_char
テーブルやメニューの枠に graphic 文字を使う(デフォルト OFF)
OFF の場合 CJK の文字コード、UTF-8 では罫線を使う。
コード変換
・各コード間で特別の変換を用意しているものは、
* EUC-JP <-> ISO-2022-JP <-> Shift-JIS
* EUC-CN <-> ISO-2022-CN <-> HZ-GB-2312
* EUC-TW <-> ISO-2022-CN
* EUC-KR <-> ISO-2022-KR <-> Johab (記号、Hanja のみ)
のみです。それ以外は Unicode を介した変換となります。
文書のコードの切替え
'=' で文書の情報を表示させると文書のコードを選択できる様になっています。
また、keymap として
keymap C CHARSET
keymap M-c DEFAULT_CHARSET
の様に設定しておくと、C で現在の文書のコードを、M-c で標準の文書の
コードを変更できます。
一行エディタ
8bit 文字の場合は、表示コードが 8bit コードの場合はそのコードで、
表示コードが 7bit コード(ISO-2022) の場合は、対応する EUC で
扱います。HZ での入力は対応していません。
ISO-2022(7bit) で入力する場合は、ISO-2022-JP 型 (G0 のみ使う)
しか使えません。
理由は、G1 ~ G3 を使うために必要な SI(\017, ^O), SO(\016, ^N)
SS3(ESC O, ^[O) が他に割り当てられているためです。
正規表現
対応しています。[あ-ん] なども使用可能です。
URL やファイルの文字コード
文書内の URL は文書の文字コード、local ファイルの文字コードは SystemCharset
であつかわれます。ただし、通常 % でエンコードして扱われます。
アクセス時は HTTP, GOPHER の場合はエンコードしたまま、その他の場合は、
自力で %?? をデコードして(SystemCharset に戻してから)アクセスします。
* コマンドライン引数では、デフォルトでは
scheme: がある場合ば URL (#label や ?query, % でのクォートを解釈)
scheme: がない場合は全てファイル名 (#label も解釈しない)
としています。
オプション argv_is_url=1 で全て URL 扱いにすることもできます。
* LOAD('V') では全てファイル名として解釈します。
* GOTO('U') はコマンドラインと全く同じ扱いにしています。
current の URL も NULL にしています。
既知のバグ(というか問題のある仕様)
* 日本語 L10N はしてますが、I18N(NLS) 関連は未対応です。
* 結合文字が文字列の先頭にきた場合、レンダリングが崩れる(かもしれない)。
* JIS X 0213 は、まだ使用例が少ないため入力時に関しては、JIS X 0208 や
JIS X 0212 のエスケープシーケンスが使われていても読み込む様にしている。
また、JIS X 0213 で包摂基準の変わった文字でも JIS X 0208 とみなす。
* ISO 2022 での C0, C1 集合への指示は無視されます。
C0 は常に ACSII のコントロール文字、C1 は未定義文字となります。
* JIS X 0208:1990 の ESC & @ は無視されます。
-----------------------------------
TODO
* NLS 対応
# NLS ライブラリ(gettext, catgets) を使うか、自前で処理するか?
# 落ち着いてからでも良いと思う。
* #undef USE_M17N, #define LANG EN, #undef USE_UNICODE のチェック
# 時々やらないとまずいかな。やっぱり。
-----------------------------------
更新記録
2003/03/08 w3m-0.4.1-m17n-20030308
* w3m-0.4.1 ベース
2003/02/24 w3m-0.4-m17n-20030224
* w3m-0.4 ベース
2003/02/11 w3m-0.4rc1-m17n-20030211
* w3m-0.4rc1 ベース
2003/02/07 w3m-0.3.2.2-m17n-20030207
* w3m-0.3.2.2+cvs-1.742 ベース
2003/02/01 w3m-0.3.2.2-m17n-20030201
* w3m-0.3.2.2+cvs-1.734 ベース
2003/01/31 w3m-0.3.2.2-m17n-20030131
* w3m-0.3.2.2+cvs-1.732 ベース
2003/01/23 w3m-0.3.2.2-m17n-20030123
* w3m-0.3.2.2+cvs-1.705 ベース
2003/01/22 w3m-0.3.2.2-m17n-20030122
* w3m-0.3.2.2+cvs-1.699 ベース
2003/01/01 w3m-0.3.2.2-m17n-20030101
* w3m-0.3.2.2+cvs-1.655 ベース
2002/12/22 w3m-0.3.2.2-m17n-20021222
* w3m-0.3.2.2+cvs-1.640 ベース
2002/12/19 w3m-0.3.2.2-m17n-20021219
* w3m-0.3.2.2+cvs-1.635 ベース
2002/12/07 w3m-0.3.2.2-m17n-20021207
* w3m-0.3.2.2+cvs-1.599 ベース
* int != long な環境での問題を修正
2002/11/27 w3m-0.3.2.1-m17n-20021127
* w3m-0.3.2.1+cvs-1.562 ベース
2002/11/20 w3m-0.3.2-m17n-20021120
* w3m-0.3.2+cvs-1.538 ベース
2002/11/18
* 文字コードの自動判別に UTF-7 を追加。
2002/11/16 w3m-0.3.2-m17n-20021116
* w3m-0.3.2+cvs-1.526 ベース
2002/11/13 w3m-0.3.2-m17n-20021113
* w3m-0.3.2+cvs-1.506 ベース
2002/11/12 w3m-0.3.2-m17n-20021112
* w3m-0.3.2+cvs-1.498 ベース
2002/11/09 w3m-0.3.2-m17n-20021109
* w3m-0.3.2+cvs-1.490 ベース
2002/11/07 w3m-0.3.2-m17n-20021107
* w3m-0.3.2 ベース
* [w3m-dev 03371] は適用
2002/10/22 w3m-0.3.1-m17n-20021022
* w3m-0.3.1+cvs-1.444 ベース
2002/07/17 w3m-0.3.1-m17n-20020717
* w3m-0.3.1 ベース
2002/05/29 w3m-0.3-m17n-20020529
* w3m-0.3+cvs-1.379 ベース
2002/03/16 w3m-0.3-m17n-20020316
* w3m-0.3+cvs-1.353 ベース
2002/03/11 w3m-0.3-m17n-20020311
* w3m-0.3+cvs-1.342 ベース
* バグ修正
2002/02/16 w3m-0.2.5-m17n-20020216
* w3m-0.2.5+cvs-1.319 ベース
* use_wide オプションを追加
2002/02/05 w3m-0.2.5-m17n-20020205
* w3m-0.2.5+cvs-1.302 ベース
2002/02/02 w3m-0.2.5-m17n-20020202
* w3m-0.2.5+cvs-1.291 ベース
2002/01/31 w3m-0.2.4-m17n-20020131
* w3m-0.2.4+cvs-1.278 ベース
2002/01/29 w3m-0.2.4-m17n-20020129
* w3m-0.2.4+cvs-1.268 ベース
* バグ修正
2002/01/28 w3m-0.2.4-m17n-20020128
* w3m-0.2.4+cvs-1.265 ベース
2002/01/08 w3m-0.2.4-m17n-20020108
* w3m-0.2.4 ベース
2002/01/07
* 一部の wc_conv,wc_Str_conv を wc_conv_strict,wc_Str_conv_strict で
置き換え。
2001/12/31
* HKSCS の Unicode 変換表を追加
* Big5 の Unicode 変換表を修正
* Big5 と CNS11643 の変換を廃止(Unicode ベースへ)
* HKSCS の扱いを修正
2001/12/30 w3m-0.2.3.2-m17n-20011230
* w3m-0.2.3.2+cvs-1.196 ベース
2001/12/22 w3m-0.2.3.2-m17n-20011222
* w3m-0.2.3.2 ベース
* [w3m-dev-en 00660] INET6 のときコンパイルできない
* [w3m-dev-en 00663] WC_N_??? の2重定義の修正
2001/12/21 w3m-0.2.3.1-m17n-20011221
* w3m-0.2.3.1 ベース
2001/12/19
* HKSCS を追加。Unicode の変換表は未だ。
* KOI8-U を追加。
2001/12/18 w3m-0.2.2-m17n+cvs-1.137
* ISO 8859-16 の Unciode 変換表を追加
* JIS X 0208(0213) の 0x7425,0x7426 を JIS X 0213 扱いに
* バグ修正
2001/12/17 w3m-0.2.2-m17n+cvs-1.131
2001/12/15 w3m-0.2.2-m17n+cvs-1.124
* sourceforge.net の CVS をベース
* UTF-7 に対応。
* -o ext_halfdump を追加。
* =?iso-8859-1?q? の様な小文字での MIME の指定に対応。
* ISO 2022 の ESC % を読み飛ばす様にした。
* ks_c_5601-1987 (ksc) を EUC-KR と認識する様にした。
* locale が zh_TW, zh_HK の時のデフォルトの文字コードを Big5 へ。
* 結合文字の直前で改行されることがあるバグの修正。
* resize すると文字化けすることがある問題の修正。
* UTF-8 判定部のバグ修正。
2001/04/12 w3m-(0.2.1)-m17n-0.19
* JISX0212, JISX0213 の"チルダ"の Unicode への変換を FULLWIDTH TILDE
に修正。
* MICRO SIGN を JISX0208 の"ギリシャ小文字ミュー"へ変換する様にした。
* [w3m-dev 01892], [w3m-dev 01894], [w3m-dev 01898], [w3m-dev 01902]
に対応。
2001/03/31
* <_SYMBOL> の実装の修正。
* -dump の時でも pre_conv のデフォルトは OFF。
2001/03/29
* TCVN 5712 の結合文字に対応。
* [w3m-dev 01873], [w3m-dev-en 00411] に対応。
2001/03/28
* configure で suffix 無しを指定可能にした。(thanks to naddy!)
* #define USE_SSL で #undef USE_SSL_VERIFY の場合に rc.c がコンパイル
できないバグの修正。(thanks to naddy!)
* [w3m-dev 01859] に対応。
* Shift-JIS で 0xA0 がエラーとならないバグ修正。
* <_SYMBOL> の実装の変更。[w3m-dev 01852] に対応。
2001/03/24 w3m-(0.2.1)-m17n-0.18
* w3m-0.2.1 ベース
* [w3m-dev 01703], [w3m-dev 01814], [w3m-dev 01823] に対応。
* ISO-2022-JP-3 を ISO-2022-JP と分離。ISO-2022-JP では絶対に
JIS X 0212 や JIS X 0213 を送らない様にした。
* 自動判別の改良。
2001/03/23
* w3m-0.2.0 ベース
2001/02/21
* CHARSET, DEFAULT_CHARSET 関数を追加。
* frame の時の文字コード判定を改良。
2001/03/20
* FULL WIDTH variant (ASCII 以外)からの変換を行う様にした。
2001/03/18 w3m-(0.1.11-pre-hsaka24)-m17n-0.17
* [w3m-dev 01779] w3m-0.1.11-pre-hsaka24 への対応。
* JIS X 0213 を JIS X 0212 より優先するようにした。
2001/03/14 w3m-(0.1.11-pre-kokb23)-m17n-0.16
* JIS X 0213 と Unicode Extention B との変換を追加。
* JIS X 0213 と Unicode 変換の修正。
* UHC をハングルと判定するように修正。
* pre_conv = ON の場合は、search_conv を無視する。
2001/03/09 w3m-(0.1.11-pre-kokb23)-m17n-0.15
* wc_wchar_t を改良(主に Unicode 用)。
* Unicode の扱いの幾つかのバグ修正。
* GBK, GB18030 で出力する場合は use_gb12345_map は無効にした。
* -dump の時は常に pre_conv = ON。
* -dump や -halfdump の時は余計な処理はしない様にした。
* system の文字コードを環境変数 LC_CTYPE -> LANG -> LC_ALL の順で設定
する様にした。
* [w3m-dev 01724], [w3m-dev 01726], [w3m-dev 01752], [w3m-dev 01753],
[w3m-dev 01754] に対応。
2001/03/06 w3m-(0.1.11-pre-kokb23)-m17n-0.14
* Language tag (UTR#7) に対応してみた。
* GB18030, Johab と Unicode 変換部のバグ修正。
* Unicode の full width の結合文字(ひらがなの濁音など)を precompose できて
いなかったバグの修正。(w3m-m17n-0.10 で直したはずが直っていなかった)
2001/03/04 w3m-(0.1.11-pre-kokb23)-m17n-0.13
* GBK(CP936), GB18030, UHC(CP949) に対応。
* GB2312, GB12345 の Unicode のマッピングテーブルを CP936, GB18030 と
互換にした。(コード: 0xA1A4, 0xA1AA)
* Unicode の 0xFFFE, 0xFFFF をそのまま通す様にした。(GB18030 との互換性)
* Unicode の NBSP が 0x80 になっていたバグ修正。
2001/03/03 w3m-(0.1.11-pre-kokb23)-m17n-0.12
* CP932 に対応。Shift_JIS は CP932 を意味するものとし、Shift_JISX0213 は
明示しないかぎり判別しない。
* JIS X 0213 対応にかなりバグがあったので修正。ただし厳密に JIS X 0213 に
従ってはいない。
* JIS X 0208 → Unicode のマッピングテーブルを CP932 のものに置き換え。
"", "", "∥", "", "¢", "£", "¬"
Unicode → JIS X 0208 は両方。0x00A5 (YEN SIGN) も "¥" へ変換。
* Unicode への変換時のエラー処理のバグの修正。
* CP1258 での出力時ののバグ修正。
* 標準入力からのデータを vwSrc で HTML 表示する時の一時ファイルの
* configure の typo 修正。(下津さん thanks!)
* HTML 中の属性値の URL の最初と最後の空白文字は削除するようにした。
(下津さん thanks!)
2001/02/15 w3m-(0.1.11-pre-kokb23)-m17n-0.11
* Strdelete のバグが非常にまずいので、とりあえず公開。
2001/01/29
* Refresh で相対パスの場合に動作していなかったのを修正。
# そもそも goURL() を使うのがまずいんじゃ...
2001/01/23
* Strdelete の処理を元に戻した。(坂根さん thanks!)
2001/01/19 w3m-(0.1.11-pre-kokb23)-m17n-0.10
* Unicode の full width の結合文字(ひらがなの濁音など)を precompose できて
いなかったバグの修正。
* [w3m-dev 01650], [w3m-dev 01651], [w3m-dev 01560] に対応。
2001/01/17 w3m-(0.1.11-pre-kokb23)-m17n-0.9
* [w3m-dev 01617], [w3m-dev 01621], [w3m-dev 01624], [w3m-dev 01625],
[w3m-dev 01635], [w3m-dev 01643], [w3m-dev 01647] に対応。
2001/01/16 w3m-(0.1.11-pre-kokb23)-m17n-0.8 (置き換え)
* typo 修正(坂根さん thanks!)
2001/01/14 w3m-(0.1.11-pre-kokb23)-m17n-0.8
* JIS X 0213-2 にバグがあるがとりあえず公開する。
2000/12/29
* [w3m-dev 01594] に対応。(やまてさん thanks!)
* [w3m-dev 01602] に対応。
2000/12/27
* UCS-2/4 の扱いを改良。Unicode 以外の 31個の 16bit文字セット、
7個の 32bit文字セットが使用可能。
# 使う事あるのか? → GB18030 で使うことになりそう
PCSW(Shift_JIS,Big5,等) の扱いについても改良を考案中。
* checkType() で s->length > size の場合の処理にバグがあったものを修正。
# 全然、直って無かった。(やまてさん thanks!)
* Big5 の Level1 と Level2 を分ける位置が間違っていた。
# 一年近く昔からのバグ。なぜ気づかなかったのだろう。
2000/12/25 w3m-(0.1.11-pre-kokb23)-m17n-0.7
* UCS-2/4 の扱いを他の 16/32bit コードが使える様に改良するため、
とりあえず、w3m-m17n-0.7 としてまとめる。
* [w3m-dev 01564] に対応。(やまてさん thanks!)
2000/12/24
* Johab に対応。自前の Unicode 変換テーブルを持ちたくなかったため、
特殊な変換になってしまい汎用性に欠けるようになってしまった。
* wtf_gr_ces が KS X 1001 だった場合にハングルが "わかち書き" されない
バグの修正。
* UCS の中でハングルと判定するコードポイントを増やした。
* file 名中に '+' を含む file にアクセスできなくなっていたバグの修正。
2000/12/23
* checkType() で s->length > size の場合の処理にバグがあったものを修正。
* UTF-8 の解析で現れるべきではないシーケンス(サロゲート等)のチェックを
行う様にした。
* WC_CCS_SET と WC_CCS_TYPE を混同していたバグの修正(良く動いてたなぁ)
* Big5 の表現をそのままのコード(WC_CCS_BIG5)と CS94 型のコード
(WC_CCS_BIG5_1, WC_CCS_BIG5_2)の両方を使える様にした。
2000/12/22
* [w3m-dev 01555], [w3m-dev 01556] に対応。
2000/12/21 w3m-(0.1.11-pre-kokb23)-m17n-0.6
* ISO 2022 の SS2, SS3 に関する修正が適用されていなかったので再修正。
* [w3m-dev 01531], [w3m-dev 01534] に対応。
* textarea を編集した後、読み込むときに auto detect を ON にした。
DisplayCharset が 7bit コード(特に ISO-2022-JP)の場合に対応。
* form 中での PC_UNKNOWN の処理を追加。
* form 中での PC_CTRL の幅が 2 になっていたものを修正。
* form 中での結合文字(width=0)に対処。
* DEL の wtf_width_map が 2 になっていたバグの修正。
* table 中に <hr> があるとレンダリングが崩れるバグの修正。(やまてさん thanks!)
* pager モードから HTML view する場合は buf->document_charset で
saveBuffer する様にした。
* entity の扱いの整理。
* DocumentCharset が UTF-8 の場合の auto detect で ISO-8859-1 を判別する
ことを止めた。ISO-2022 のみ判別する。
* wc_ces と wc_ccs の typo を修正
* sourcefile を load する場合は常に file_to_url() する様にした。
2000/12/20 w3m-(0.1.11-pre-kokb23)-m17n-0.5
* entity の扱いの改良。conv_entity を直接呼ぶコードに対応。
* ANSI color escape sequence 対応。
2000/12/19
* ページャモードで \b の解析時のバグ修正。(坂根さん thanks!)
* <ol><li> の後の空白文字が削除されないバグ修正。
* Str.c 内の strncpy を bcopy へ。
* 型のチェック(特に unsigned char と char)。(坂根さん thanks!)
* マクロの引数を () で囲んでいなかったものの修正。
* libwc/Makefile で ranlib をそのまま使っていたのをマクロに。
2000/12/18
* -I オプションが指定されている場合、コマンドラインのファイルまたは
URL の読み込みに関してはヘッダや <META> の Content-Type での
charset の指定を適用しない様に変更。
* <META> での charset の指定がクリアされていないバグの修正。
2000/12/17 w3m-(0.1.11-pre-kokb23)-m17n-0.4
* [w3m-dev 01515], [w3m-dev 01516] に対応。
* INTSPACE の処理に関するコード整理。
* テーブルの枠などの symbol に関するバグ修正。
* 表示する時、ごく稀にゴミがでる問題の修正。
2000/12/16 w3m-(0.1.11-pre-kokb23)-m17n-0.3
* w3m-0.1.11-pre-kokb23 対応。
2000/12/16 w3m-(0.1.11-pre-kokb22)-m17n-0.2
* テーブルの枠が検索でおかしなマッチをする問題を修正。
合わせて <UL> の記号等も同じ処理に改良。
* #ifdef __EMX__ の場合に CodePage から DisplayCharset 等を設定する様
にしてみた。(動作は未確認)
2000/12/15
* ISO 2022 の SS2, SS3 に関する修正。
* SHOW_PARAMS に関する修正。
* loadHTMLString で作成したバッファにも文字コードを適宜設定。
2000/12/15 w3m-(0.1.11-pre-kokb22)-m17n-0.1
* 最初の alpha リリース
* configure に対応。
-----------------------------------
坂本 浩則 <hsaka@mth.biglobe.ne.jp>
http://www2u.biglobe.ne.jp/~hsaka/
+47
View File
@@ -0,0 +1,47 @@
mailcap サポートについて
(2000/11/07) 岡部克也
okabek@guitar.ocn.ne.jp
・ 2000/10/6 の版から, mailcap のフィールド test, nametemplate, needsterminal,
copiousoutput, edit (参照: RFC 1524) を見るようになりました.
また 2000/10/26 の版からは, mailcap と mime.types ファイルの場所が Option
Setting Panel で変更できるようになりました.
・ mailcap 中の %s は外部コマンドに渡すパス名, %t は content-type で置換されま
す.
・ もし mailcap エントリに test=command フィールドが存在する場合 command の実
行結果が真であるときのみ, 外部コマンドが実行されます. 例えば
image/gif; xv '%s'; test=test "$DISPLAY"
のように書けば, DISPLAY 環境変数がセットされているときのみ xv が実行されま
す.
・ もし mailcap エントリに copiousoutput フィールドが存在する場合, 外部コマン
ドの標準出力はバッファに読み込まれます.
例:
application/x-troff-man;/usr/bin/nroff -mandoc;copiousoutput
LESSOPEN コマンドでできる事は, 大部分これで置き換える事ができます. そのため
LESSOPEN の利用はオプション扱いになりました.
w3m の拡張フィールドとして, x-htmloutput があります. copiousoutput と同様に
コマンドの実行結果がバッファに読み込まれますが, HTML としてレンダリングする
所が異なります. この機能を使う場合は, w3m 用の mailcap ファイルを別に用意す
るか, 他のブラウザ用に x-htmloutput を含まないエントリを前に置いておくと良
いかもしれません.
(2001/08/01) 坂本
htmloutput → x-htmloutput
・ nametemplate= は外部コマンドに渡すファイル名の拡張子を指定します.
テンポラリファイルを作るとき, 通常元の URL の拡張子がファイル名に付けられま
すが, nametemplate= フィールドによって変更する事ができます.
例:
application/x-dvi;xdvi '%s';test=test -n "$DISPLAY";nametemplate=%s.dvi
・ needsterminal, edit については RFC 1524 を見てください.
+106
View File
@@ -0,0 +1,106 @@
w3m のメニューについて
(2002/11/27) 坂本 浩則
hsaka@mth.biglobe.ne.jp
[1] キー操作
・一般的なもの
HELP, INS キー : メニューの立ち上げ
HELP, INS キー, C-c, : メニューの消去
RET(C-m, C-j), SPC, →キー : 選択
BS(C-h), DEL(C-?), ←キー : 戻る
C-n, j, ↓キー : 下の項目へ
C-p, k, ↑キー : 上の項目へ
J : 項目を上にスクロール
K : 項目を下にスクロール
C-a : 先頭の項目へ
C-e : 最後の項目へ
C-f, C-v : 次ページの項目へ
C-b, M-v : 前ページの項目へ
C-s, / : 項目を下に向かって検索
C-r, ? : 項目を上に向かって検索
n : 次の項目を検索
N : 前の項目を検索
C-z : サスペンド
# INS は通常 ^[[2~ ですが ^[[L(コンソール), ^[[E(PocketBSD) にも
バインドしてあります。
MenuKeymap, MenuEscKeymap, MenuEscBKeymap, MenuEscDKeymap (menu.c)
で定義
・個別のメニュー用
MenuItem 構造体 (menu.h) の char *keys に設定(複数可能)
上記のキー操作に上書きされます。
[2] マウス
ボタン3 : メニューの立ち上げ
立ち上げ後
ボタン1/3 (項目) : 選択
″ (枠,MENU_NOP) : 何もしない
″ (枠外) : 戻る(メニューの消去)
″ ( : ) : 次ページまたは前ページの項目へ
(長いメニューの場合)
″ (ドラッグ) : スクロール
[3] メニューのカスタマイズ
~/.w3m/menu にメニューを定義できます。
メニューは、
menu MENU_ID
項目
:
end
として設定します。各項目には、
func LABEL FUNCTION KEYS [DATA] コマンド実行
popup LABEL MENU_ID KEYS サブメニュー立ち上げ
nop LABEL 何もしない(セパレータやタイトル)
を設定可能です。
例は menu.default や menu.submenu を見てください。
設定できるコマンド(FUNCTION)は README.func を見てください。
MENU_ID として "Main" はメインメニューに、"Select" はバッファ選択
メニューに、"SelectTab" はタブ選択メニューに予約されています。
KEYS はバインドするキーで複数指定可能です。
DATA が設定されていればコマンド(FUNCTION)の引数として使われます。
[4] 開発について
メニュールーチンの例は mainMenu(), optionMenu() を見れば分かると思います。
このルーチンと以下の MenuItem 構造体を定義すれば、ほとんどのメニューは、
設定できると思います。
MenuItem 構造体 (menu.h)
struct {
int type; /* タイプ */
char *label; /* ラベル */
int *variable; /* VALUE_MENU の場合に設定する変数 */
int value; /* VALUE_MENU の場合に設定する値 */
void (*func)(); /* 選択された時に実行する関数 */
struct _Menu *popup; /* サブメニュー */
char *keys; /* バインドするキー(複数可能) */
} MenuItem;
タイプ type は以下のものが使用できます。
MENU_NOP (1) : なにもしない。選択もできない。
(タイトルやセパレータ用)
MENU_FUNC (2) : 関数を実行
MENU_VALUE (4) : 変数(*variable)に値(value)を設定
MENU_POPUP (8) : サブメニューを立ち上げる
MENU_FUNC と MENU_VALUE は (MENU_FUNC | MENU_VALUE) と
設定することで両方の動作をします。(変数設定が先です)
設定例は、MainMenuItem (menu.c) や new_option_menu() を見てください。
+39
View File
@@ -0,0 +1,39 @@
w3m で Migemo (ローマ字検索)を行う
(2002/02/23) 日台健一
hidai@nmn.jp
・ Migemo を用いることでローマ字のインクリメンタル検索を行うことができます.
あらかじめ Migemo がインストールされている必要があります.
http://migemo.namazu.org/
・ configure スクリプト実行時に --with-migemo オプションを付けることで利用可
能となります.
・ オプションパネルにて以下の設定をします. 辞書のパスは適切に書き換えて下さい.
Migemo を使用する ... ON
Migemo コマンド ..... migemo -t egrep /usr/local/share/migemo/migemo-dict
・ 正しく設定されていれば、通常の検索においてローマ字検索ができるはずです.
ローマ字検索が行われていないようであれば、次の項目を確認して下さい.
・ うまく動かないときは、以下のように migemo コマンドの動作確認をして下さい.
入力したローマ字に対して、それを展開した正規表現が出力されれば成功です.
(コマンドは、オプションパネルの「Migemo コマンド」に設定したもの)
% migemo -t egrep /usr/local/share/migemo/migemo-dict
migemo
migemo|migemo|みげも|ミゲモ
romaji
romaji|romaji|ろまじ|ロ(ーマ字|マジ)
・ デフォルトでは、/ ? が通常の検索、C-s C-r がインクリメンタル検索にバインド
されています. / ? でインクリメンタル検索を行うには、~/.w3m/keymap に以下の
設定をします.
keymap / ISEARCH
keymap ? ISEARCH_BACK
・ Migemo に付属の migemo-server を使用する必要はありません. w3m は migemo コ
マンドを直接実行 (popen(3)) します.
+66
View File
@@ -0,0 +1,66 @@
~/.w3m/mouse の形式は、
menu メニューの文字列(デフォルトなし)
lastline 最下行の文字列(デフォルト『≪↑↓』)
button 番号 位置 関数 [引数]
番号: 1…左ボタン
2…中ボタン
3…右ボタン
位置: menu <x1> <x2> … メニュー上でクリック
lastline <x1> <x2> … 最下行でクリック
default … 他の設定が無い時のデフォルト
anchor … アンカー上でクリック
active … アクティブなアンカー上でクリック
tab … タブ上でクリック
<x1> : 左端のカラム位置
<x2> : 右端のカラム位
です。
互換性のために <位置> での menu は省略可能です。
デフォルトの設定(func.c 内)は、
button 1 default MOVE_MOUSE
button 2 default BACK
button 3 default MENU_MOUSE
button 1 active GOTO_LINK
button 1 tab TAB_MOUSE
button 2 tab CLOSE_TAB_MOUSE
lastline "≪↑↓"
button 1 lastline 0 1 BACK
button 1 lastline 2 3 PREV_PAGE
button 1 lastline 4 5 NEXT_PAGE
と同等です。(これまでと同じはず)
・例えば、
button 1 anchor COMMAND "MOVE_MOUSE; GOTO_LINK"
と設定するとアクティブでないアンカー上でも左クリックしただけで、
リンク先に飛びます。(GUI ブラウザと同じ様な動作)
・~/.w3m/menu で
menu Active
func "リンクを表示 (a)" GOTO_LINK "a"
func "新しいタブで表示 (t)" TAB_LINK "t"
func "リンクを保存 (d)" SAVE_LINK "d"
func "外部ブラウザで表示 (m)" EXTERN_LINK "m"
end
の様に設定しておいて、~/.w3m/mouse で
button 3 anchor MENU_MOUSE Active
と設定すると、アンカー上で右クリックしするとアンカー用の
メニューが開きます。
こんな感じで使ってみてください。
+35
View File
@@ -0,0 +1,35 @@
pre_form: $BFCDj$N%5%$%H$r3+$$$?;~$K!"(Bform $B$rM=$a@_Dj$9$k5!G=$G$9!#(B
$BNI$/;H$&7G<(HD$H$+$G$OJXMx$H;W$$$^$9$,!"0BA4@-$,5>@7$K$J$k$+$b(B
$B$7$l$^$;$s!#FC$K(B submit $B$O5$$r$D$1$F;H$C$F2<$5$$!#(B
$B%G%U%)%k%H$N@_Dj%U%!%$%k$O(B ~/.w3m/pre_form $B$G$9!#(B
$B@_Dj%U%)!<%^%C%H$O!"(B
url <url>|/<re-url>/
form [<name>] <action>
text <name> <value>
file <name> <value>
password <name> <value>
checkbox <name> <value> [<checked>]
radio <name> <value>
section <name> <value>
submit [<name> [<value>]]
image [<name> [<value>]]
textarea <name>
<value>
:
/textarea
$B$G$9!#(B
<action> $B$,@_Dj$7$F$"$k;~$O!"0lCW$9$k(B action $BB0@-$r;}$D(B form $B$N$_(B
$B@_Dj$7$^$9!#(B
text, file, password, select, textarea $B$O0lCW$9$k(B name $BB0@-$r;}$D(B
input, select $B$^$?$O(B textarea $BMWAG$N(B value $BB0@-$r@_Dj$7$^$9!#(B
checkbox, radio $B$O(B name $BB0@-$H(B value $BB0@-$,0lCW$9$k(B input $BMWAG$r(B
check $B$7$^$9!#(B
<checked> $B$,(B 0$B!"(Bno $B$^$?$O(B off $B$N>l9g$O(B checkbox $B$N(B check $B$r30$7$^$9!#(B
submit, image $B$N>l9g!"(B<name> $B$,@_Dj$7$F$"$k;~$O!"0lCW$9$k(B name $BB0@-(B
($B$H(B value $BB0@-(B)$B$r;}$D(B input $BMWAG$r(B submit $B$7$^$9!#(B<name> $B$r@_Dj$7$F(B
$B$$$J$$>l9g$O!":G8e$N(B input type=submit $BMWAG$r(B submit $B$7$^$9!#(B
<name> $B$d(B <value> $B$O!"%7%'%k$NMM$K(B \,'$B!A(B',"$B!A(B" $B$G%/%)!<%H2DG=$G$9!#(B
+43
View File
@@ -0,0 +1,43 @@
w3m $B$r%?%V%V%i%&%62=(B
$B%-!<A`:n$ODj5A$7$F$$$^$;$s$N$G!"0J2<$N4X?t$rE,Ev$J%-!<$K@_Dj$7$F(B
$B$*;H$$2<$5$$!#(B
NEW_TAB $B?7$7$$%?%V$r3+$$$F!"8=:_$N%Z!<%8$NJ#@=$r:n$j$^$9(B
TAB_LINK $B%j%s%/$,;X$9@h$NJ8=q$r?7$7$$%?%V$G3+$-$^$9(B
$B?t(B(N) + TAB_LINK $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B
TAB_GOTO URL$B$r;XDj$7$F?7$7$$%?%V$G3+$-$^$9(B
$B?t(B(N) + TAB_GOTO $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B
TAB_GOTO_RELATIVE
$BAjBP(BURL$B$r;XDj$7$F?7$7$$%?%V$G3+$-$^$9(B
$B?t(B(N) + TAB_GOTO_RELATIVE $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B
CLOSE_TAB $B8=:_$N%?%V$rJD$8$^$9(B
$B?t(B(N) + CLOSE_TAB $B$@$H!"(BN $BHVL\$N%?%V$rJD$8$^$9(B
NEXT_TAB $B<!$N%?%V$K0\F0$7$^$9(B
$B?t(B(N) + NEXT_TAB $B$@$H!"(BN $B$@$1<!$N%?%V$K0\F0$7$^$9(B
PREV_TAB $BA0$N%?%V$K0\F0$7$^$9(B
$B?t(B(N) + PREV_TAB $B$@$H!"(BN $B$@$1A0$N%?%V$K0\F0$7$^$9(B
TAB_RIGHT $B8=:_$N%?%V$r1&$K0\F0$7$^$9(B
$B?t(B(N) + TAB_RIGHT $B$@$H!"8=:_$N%?%V$r(B N $B$@$11&$K0\F0$7$^$9(B
TAB_LEFT $B8=:_$N%?%V$r:8$K0\F0$7$^$9(B
$B?t(B(N) + TAB_LEFT $B$@$H!"8=:_$N%?%V$r(B N $B$@$1:8$K0\F0$7$^$9(B
TAB_MENU $B%?%VA*Br%a%K%e!<$rN)$A>e$2$^$9(B
$B%?%VA*Br%a%K%e!<$NA`:n$O%P%C%U%!A*Br%a%K%e!<$HF1MM$G$9!#(B
$B$^$?!"%^%&%9$G$NA`:n$b=PMh$^$9!#(B
$B:8%\%?%s(B $B!D(B $B%?%V>e$G%/%j%C%/$9$k$H!"$=$N%?%V$K0\F0$7$^$9(B
$B%?%V$+$iJL$N%?%V$^$G%I%i%C%0$9$k$H!"%?%V$r0\F0$7$^$9!#(B
$B%j%s%/$+$i%?%V$^$G%I%i%C%0$9$k$H!"$=$N%?%V$G%j%s%/$r3+$-$^$9(B
$B1&>e6y$N!V(Bx$B!W$r%/%j%C%/$9$k$H!"8=:_$N%?%V$rJD$8$^$9(B
$BCf%\%?%s(B $B!D(B $B%?%V>e$G%/%j%C%/$9$k$H!"%?%V$rJD$8$^$9(B
$B1&%\%?%s(B $B!D(B $BFC$K$J$7(B(= $B%a%K%e!<$r3+$/(B)
$B%*%W%7%g%s$H$7$F!"(B
open_tab_blank $B!D(B target $B$,(B _blank $B$+(B _new $B$N>l9g$O?7$7$$%?%V$G3+$/(B
$B%G%U%)%k%H$O(B OFF
close_tab_back $B!D(B $BLa$k;~$K%P%C%U%!$,:G8e$J$i%?%V$rJD$8$k(B
$B%G%U%)%k%H$O(B OFF (= Can't back...)
$B$rDI2C$7$F$$$^$9!#(B
+190
View File
@@ -0,0 +1,190 @@
<html>
<head>
<title>w3mの開発について</title>
</head>
<body>
<h1>w3mの開発について</h1>
<div align=right>
1999/2/18<br>
1999/3/8改訂<br>
伊藤 彰則<br>
aito@fw.ipsj.or.jp
</div>
<h2>はじめに</h2>
w3mは,WWWに対応したページャ/ブラウザで,テキストベースで動く.
w3mに最も近いアプリケーションとして,有名なテキストベースブラウザ
<a href="http://www.lynx.browser.org/">Lynx</a>がある.しかし,w3mには
Lynxにないいくつかの特徴がある.例えば,
<UL>
<LI>tableがレンダリングできる.
<LI>frameがレンダリングできる(frameをtableに変換して表示するだけ).
<LI>標準入力を読んで表示することができる.
(最近のLynx では,こんな風にして標準入力から文書を読むことができる
そうです:
<pre>
lynx /dev/fd/0 &lt; file
</pre>
うん,Linuxでは確かに動くようです.)
<LI>軽くて小さい.stripした後のw3mのバイナリサイズは,Sparcの場合で
260KByte弱である(version beta-990217現在)
ちなみにLynxのバイナリは 1.8MB以上ある.
</UL>
などだ.もちろん,Lynx は優れたブラウザで,w3mにない多くの機能を
持っている.Lynxにあってw3mにない機能は,例えば
<UL>
<LI>Cookie対応.
<LI>豊富なオプション設定.
<LI>多国語対応.
</UL>
などなど.Lynx には豊富なドキュメントもあり,一方w3mにはほとんどまともな
ドキュメントがない.ドキュメントは今後の課題だ.
<P>
というわけで,w3mは既存のブラウザ(Netscapeはもちろん,Lynxも)を代替
するものでは<strong>ない</strong>.それではw3mは何のためにあるのか?
それは,日常的に「ちょっと」 web を使うためだ.専用線で接続された環境で,
「ちょっとwebを見に行きたい」とき,Netscapeを立ちあげるのはイライラする.
Lynxも立ちあがるのにちょっと間がある.
その点,w3mは一瞬で立ちあがり,マシンにほとんど負担をかけない.
そこで情報を見て,もっと詳細に見たいときに,はじめて他のブラウザを使う
のだ.もっとも私の場合,ほとんどはw3mだけで十分なのだが.
<h2>w3mの誕生</h2>
<P>
w3m の前身は,fm
というページャ(moreやlessの親戚)だった.fmが書かれたのは1991年以前
(記録していなかったので正確な日付はわからない)で,当時まだWWWは
一般的ではなかった(存在しなかったかも).その当時「ブラウザ」といえば,lessなどの
ファイルを見るツールのことを指していた.
<P>
fm は,当時私が書いていた
研究用のプログラムをデバッグするために書いたものだ.プログラムの状態
をトレースするため,プログラムの内部状態を延々とファイルにダンプし,
それを見ながらデバッグをしていた.ある時点での内部状態を1行にプリント
していたため,そのファイルは1行が数百文字あった.それをmoreやlessで
見ると,行が折り返されるため,何が何だかわからなくなってしまうのだった.
そこで私は,行を折り返さないページャであるfmを書いた.物理的な1行は
画面の上でも1行で,画面からはみ出した部分を見るには,画面全体をずらす
という設計にした.当時私は80x24の画面を使っていたので,fm はデバッグ
にとても役立った.
<P>
そのうち,私もWWWの存在を知って使いはじめた.当時使っていたブラウザは,
XMosaic と Chimera だった.特に Chimera は軽いので愛用していた.
興味があったので HTML と HTTP の勉強をしてみたが,案外簡単なので,
これなら自分でもブラウザが書けるのではないかと思った.当時のHTTPは
GOPHERプロトコルに毛が生えた程度で,非常に簡単なものだった.また,
HTML は 2.0 で,行の折り返しと箇条書きがほとんど全てだった.
そこで,fm にちょっと手を入れて,WWWブラウザを作ってみた.これがw3mだった.
ちなみに,w3m は WWW-wo-Miru (日本語だ)の略で,fm (File-wo-Miru)に
倣った.最初に w3m を書いたのは,1995年初頭だったと思う.
<h2>w3mの没落と再生</h2>
<p>
それ以来,ずっと私は w3m を「ページャ」として使っていた.ファイルや
電子メール,マニュアルなどを読むときに,lessの代わりにしていたのだ.
w3mでwebを見ることも時々あったが,その後 w3m で正常に見られないページが
多くなった(その多くはtableを使っていた)こともあって,webブラウザと
してはほとんど使わなくなっていた.一度 table のレンダリングを検討
したことがあったが,難しいので放ってあった.
<P>
もう一度 w3m に手を入れる気になったのは,1998年のことだ.動機は2つあった.
その当時,私は客員研究員としてボストン大学に滞在しており,多少時間に余裕があった
ことが一つ.もう一つは,研究日誌を HTML で書いていて,結果をどうしても表に
したくなったためだ.それまでは表を &lt;pre&gt;..&lt;/pre&gt;で書いていたのだが,
plain textで表を作るのがわずらわしくて仕方なかった.とうとう我慢できなくなって
&lt;table&gt;タグを使ったが,そうすると今度は Netscape を使わないと日誌が
見られなくなってしまった.そこで,w3m で table の
レンダリングができるようにしようと試みた.
<P>
私としては,それほど複雑でない表を見ることができれば十分だった.ところが,
半端にtableに対応した結果,画面のレイアウトにtableを使っているページの
表示がぐちゃぐちゃになってしまった.結局,「表が見られて」「その他のページ
もそこそこに見られる」ようにするためには,tableの表示が完璧に近くなければ
ならないのだった.茨の道だ.
<P>
結局,結構時間がかかったが,何とか
実用になるものができたと思う.table の実装に気をよくして,次に form を実装
した.これで,w3mはほぼ実用になるブラウザとして生まれ変わったのだ.
<h2>w3mでのtableのレンダリングアルゴリズム</h2>
HTMLのtableのレンダリングは結構難しい.LaTeX の tabular のように,
「表の各列の幅を指定するか,さもなければ必要な最大の幅を取る」
というのなら話は簡単なのだが,HTMLのtableは「画面に適当に収まるように」
列の幅を設定して,表の内容を適当に折りかえさなければならない.
幅の決定をいいかげんにすると,非常に表が見づらくなってしまう.
また,tableは入れ子にできるので,それが話を一層ややこしくしている.
そこで,w3mでは次のようなアルゴリズムで幅を決定している.
<OL>
<LI>まず,各列の内容の最大幅と最小幅を求める.最大幅というのは,
もしいくらでも広い幅が取れたとしたら,最大何桁になるかというもの
だ.一般的には,&lt;BR&gt;&lt;P&gt;で区切られた段落の長さになる.
最小幅は,それより列の幅が狭いと内容が詰められないという限界の幅
である.表の内容が日本語だけの場合には最小幅は常に2であり,
internationalization という単語が含まれていれば最小幅は20
である.また,表の中に&lt;pre&gt;..&lt;/pre&gt;があった場合,
その一行の長さの最大値が最小幅になる.
<LI>もし,WIDTH属性で列の幅が指定してあれば,列の幅をその値で固定
する.ただし,その幅が最小幅よりも小さければ,列の幅を最小幅で固定する.
<LI>列の最大幅(または固定幅)を合計して,画面の幅よりも広いかどうかを調べる.
もし合計が画面に収まるなら,その値を各列の幅として使う.
<LI>もし合計が画面に収まらなければ,次のようにして幅を決定する.
<OL>
<LI>画面の幅から,幅が固定された列の幅の合計を引く.これを W とする.
<LI>幅が固定されていない列に対して,各列の最大幅の対数に比例して W を配分する.
<LI>もし配分された幅が最小幅よりも小さければ,その列の幅を最小幅で固定し,
幅の配分をやり直す.
</OL>
</OL>
幅の配分を最大幅の対数に比例させているが,これでいいのかどうか検討を要する.
ただし,最大幅そのものに比例させると悲惨なことになる.table を画面レイアウト
に使っていた場合,ある列に長い文章があると,その列が画面の幅のほとんどを使って
しまうからだ.対数じゃなくて n 乗根でもいいかもしれない.
<P>
上記のアルゴリズムでは,画面の幅が既知であることが前提になっている.ところが,
これでは困る場合がある.どういう場合かというと,表が入れ子になっている場合だ.
外側の表の列幅がわからないと内側の表がレンダリングできないが,内側の表を
レンダリングしてみないと外側の表の幅が決定できないという矛盾に陥る.WIDTH属性
が指定してあれば問題はないのだが,そうでない場合には,結局
「内側の表の幅は,外側の表の幅の0.8倍」で決め打ちしてしまうことにした.
ほとんどの場合はこれで問題ないが,ある表の中に表を入れ子にして2つ並べると,
外側の表が必ず画面をはみだしてしまうようになった.もし厳密にこれを画面に収め
ようとすると,一旦レンダリングして全体の幅を調べたあと,幅を設定しなおして
もう一度レンダリングするという過程を収束するまで繰り返さなければならない.
Netscapeは,多分これをやっているのだろう.
<h2>利用したライブラリ</h2>
w3m は,
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Boehm GC</a>
というライブラリを利用している.これは私が書いたものではないが,
コンパイル時の便宜を考えて配布パッケージに含めている.
なお,libwww は使っていない.
<P>
Boehm GCは,Cから使えるガベージコレクタだ.table を実装したあたりにこれを
使いはじめたのだが,非常に快適だった.GCなしでは,w3mにtableやformを実装
する根性が私にあったかどうか疑わしい.Boehm GCの利用については,「
<a href="http://homepage2.nifty.com/aito/gc/gc.html">
Boehm GCを使おう</a>」という文章を書いたので,それも見ていただけると良い
と思う.
<P>
beta-990304より前のバージョンでは,
<a href="http://home.cern.ch/~orel/libftp/libftp/libftp.html">LIBFTP</a>
いうライブラリを使っていた.
libftp を使った理由は,FTPプロトコルが HTTP に比べて面倒だったためだ.
しかし,ライセンスの問題がありそうだということなので,同等の関数(のサブセット)
を自前で書いてしまった.
<P>
ちなみに,w3mはUNIXの正規表現ライブラリと curses ライブラリを使っていない.
どちらも自前の関数群だ.これらを自前で用意した理由は,fmを書いた当時,
日本語の通るまともでフリーな正規表現とcursesのライブラリがなかったためだ.
現在ではどちらも存在するし,他のライブラリを使った方が速そうなのだが,
面倒なので現在までこの実装を引きずっている.
<h2>今後の予定</h2>
...ない.w3mは軽快さが売りなので,あまり機能を満載してしまうとw3m独自の
良さが失われるからだ.とはいっても,まだバグが多いので,それらのfixは
していきたいと思っている.
</body>
</html>
+142
View File
@@ -0,0 +1,142 @@
# A sample of ~/.w3m/keymap (default)
#
# Ctrl : C-, ^
# Escape: ESC-, M-, ^[
# Space : SPC, ' '
# Tab : TAB, ^i, ^I
# Delete: DEL, ^?
# Up : UP, ^[[A
# Down : DOWN, ^[[B
# Right : RIGHT, ^[[C
# Left : LEFT, ^[[D
keymap C-@ MARK
keymap C-a LINE_BEGIN
keymap C-b MOVE_LEFT
keymap C-e LINE_END
keymap C-f MOVE_RIGHT
keymap C-g LINE_INFO
keymap C-h HISTORY
keymap TAB NEXT_LINK
keymap C-j GOTO_LINK
keymap C-k COOKIE
keymap C-l REDRAW
keymap C-m GOTO_LINK
keymap C-n MOVE_DOWN
keymap C-p MOVE_UP
keymap C-q CLOSE_TAB
keymap C-r ISEARCH_BACK
keymap C-s ISEARCH
keymap C-t TAB_LINK
keymap C-u PREV_LINK
keymap C-v NEXT_PAGE
keymap C-w WRAP_TOGGLE
keymap C-z SUSPEND
keymap SPC NEXT_PAGE
keymap ! SHELL
keymap \" REG_MARK
keymap # PIPE_SHELL
keymap $ LINE_END
keymap ( UNDO
keymap ) REDO
keymap + NEXT_PAGE
keymap , LEFT
keymap - PREV_PAGE
keymap . RIGHT
keymap / SEARCH
keymap : MARK_URL
keymap ";" MARK_WORD
keymap < SHIFT_LEFT
keymap = INFO
keymap > SHIFT_RIGHT
keymap ? SEARCH_BACK
keymap @ READ_SHELL
keymap B BACK
keymap D DOWNLOAD_LIST
keymap E EDIT
keymap F FRAME
keymap G END
keymap H HELP
keymap I VIEW_IMAGE
keymap J UP
keymap K DOWN
keymap L LIST
keymap M EXTERN
keymap N SEARCH_PREV
keymap Q EXIT
keymap R RELOAD
keymap S SAVE_SCREEN
keymap T NEW_TAB
keymap U GOTO
keymap V LOAD
keymap W PREV_WORD
keymap Z CENTER_H
keymap [ LINK_BEGIN
keymap ] LINK_END
keymap \^ LINE_BEGIN
keymap a SAVE_LINK
keymap b PREV_PAGE
keymap c PEEK
keymap g BEGIN
keymap h MOVE_LEFT
keymap i PEEK_IMG
keymap j MOVE_DOWN
keymap k MOVE_UP
keymap l MOVE_RIGHT
keymap m MOUSE_TOGGLE
keymap n SEARCH_NEXT
keymap o OPTIONS
keymap q QUIT
keymap r VERSION
keymap s SELECT_MENU
keymap u PEEK_LINK
keymap v VIEW
keymap w NEXT_WORD
keymap z CENTER_V
keymap { PREV_TAB
keymap | PIPE_BUF
keymap } NEXT_TAB
keymap M-TAB PREV_LINK
keymap M-C-j SAVE_LINK
keymap M-C-m SAVE_LINK
keymap M-: MARK_MID
keymap M-< BEGIN
keymap M-> END
keymap M-I SAVE_IMAGE
keymap M-M EXTERN_LINK
keymap M-W DICT_WORD_AT
keymap M-a ADD_BOOKMARK
keymap M-b BOOKMARK
keymap M-c COMMAND
keymap M-e EDIT_SCREEN
keymap M-g GOTO_LINE
keymap M-k DEFINE_KEY
keymap M-l LIST_MENU
keymap M-m MOVE_LIST_MENU
keymap M-n NEXT_MARK
keymap M-o SET_OPTION
keymap M-p PREV_MARK
keymap M-s SAVE
keymap M-t TAB_MENU
keymap M-u GOTO_RELATIVE
keymap M-v PREV_PAGE
keymap M-w DICT_WORD
keymap UP MOVE_UP
keymap DOWN MOVE_DOWN
keymap RIGHT MOVE_RIGHT
keymap LEFT MOVE_LEFT
keymap M-[E MENU
keymap M-[L MENU
keymap M-[1~ BEGIN
keymap M-[2~ MENU
keymap M-[4~ END
keymap M-[5~ PREV_PAGE
keymap M-[6~ NEXT_PAGE
keymap M-[28~ MENU
+146
View File
@@ -0,0 +1,146 @@
# A sample of ~/.w3m/keymap (lynx-like)
#
# Ctrl : C-, ^
# Escape: ESC-, M-, ^[
# Space : SPC, ' '
# Tab : TAB, ^i, ^I
# Delete: DEL, ^?
# Up : UP, ^[[A
# Down : DOWN, ^[[B
# Right : RIGHT, ^[[C
# Left : LEFT, ^[[D
keymap C-@ MARK
keymap C-a BEGIN
keymap C-b BACK
keymap C-e END
keymap C-f GOTO_LINK
keymap C-g LINE_INFO
keymap C-h HISTORY
keymap TAB NEXT_LINK
keymap C-j GOTO_LINK
keymap C-k COOKIE
keymap C-l REDRAW
keymap C-m GOTO_LINK
keymap C-n NEXT_LINK
keymap C-p PREV_LINK
keymap C-q CLOSE_TAB
keymap C-r RELOAD
keymap C-s SEARCH
keymap C-t TAB_LINK
keymap C-u PREV_LINK
keymap C-v NEXT_PAGE
keymap C-w REDRAW
keymap C-z SUSPEND
keymap SPC NEXT_PAGE
keymap ! SHELL
keymap \" REG_MARK
keymap # PIPE_SHELL
keymap $ LINE_END
keymap ( UNDO
keymap ) REDO
keymap + NEXT_PAGE
keymap , LEFT
keymap - PREV_PAGE
keymap . RIGHT
keymap / SEARCH
keymap : MARK_URL
keymap ; MARK_WORD
keymap < SHIFT_LEFT
keymap = INFO
keymap > SHIFT_RIGHT
keymap ? HELP
keymap @ READ_SHELL
keymap B BACK
keymap D DOWNLOAD_LIST
keymap E EDIT
keymap F FRAME
keymap G GOTO_LINE
keymap H HELP
keymap I VIEW_IMAGE
keymap J UP
keymap K DOWN
keymap L LIST
keymap M EXTERN
keymap N NEXT_MARK
keymap P PREV_MARK
keymap Q EXIT
keymap R RELOAD
keymap S SAVE_SCREEN
keymap T NEW_TAB
keymap U GOTO
keymap V LOAD
keymap W PREV_WORD
keymap Z CENTER_H
keymap [ LINK_BEGIN
keymap \\ SOURCE
keymap ] LINK_END
keymap \^ LINE_BEGIN
keymap a ADD_BOOKMARK
keymap b PREV_PAGE
keymap c PEEK
keymap d SAVE_LINK
keymap g GOTO
keymap h MOVE_LEFT
keymap i PEEK_IMG
keymap j MOVE_DOWN
keymap k MOVE_UP
keymap l MOVE_RIGHT
keymap m MOUSE_TOGGLE
keymap n SEARCH_NEXT
keymap o OPTIONS
keymap p SAVE_SCREEN
keymap q QUIT
keymap r VERSION
keymap s SELECT_MENU
keymap u PEEK_LINK
keymap v BOOKMARK
keymap w NEXT_WORD
keymap z CENTER_V
keymap { PREV_TAB
keymap | PIPE_BUF
keymap } NEXT_TAB
keymap M-TAB PREV_LINK
keymap M-C-j SAVE_LINK
keymap M-C-m SAVE_LINK
keymap M-: MARK_MID
keymap M-< BEGIN
keymap M-> END
keymap M-I SAVE_IMAGE
keymap M-M EXTERN_LINK
keymap M-W DICT_WORD_AT
keymap M-a ADD_BOOKMARK
keymap M-b BOOKMARK
keymap M-c COMMAND
keymap M-e EDIT_SCREEN
keymap M-g GOTO_LINE
keymap M-k DEFINE_KEY
keymap M-l LIST_MENU
keymap M-m MOVE_LIST_MENU
keymap M-n NEXT_MARK
keymap M-o SET_OPTION
keymap M-p PREV_MARK
keymap M-s SAVE
keymap M-t TAB_MENU
keymap M-u GOTO_RELATIVE
keymap M-v PREV_PAGE
keymap M-w DICT_WORD
keymap UP PREV_LINK
keymap DOWN NEXT_LINK
keymap RIGHT GOTO_LINK
keymap LEFT BACK
keymap M-[E MENU
keymap M-[L MENU
keymap M-[1~ BEGIN
keymap M-[2~ MENU
keymap M-[4~ END
keymap M-[5~ PREV_PAGE
keymap M-[6~ NEXT_PAGE
keymap M-[28~ MENU
+35
View File
@@ -0,0 +1,35 @@
# A sample of ~/.w3m/menu (default)
#
# menu MENU_ID
# func LABEL FUNCTION KEYS
# popup LABEL MENU_ID KEYS
# nop LABEL
# end
#
# MENU_ID
# Main: メインメニュー
# Select: バッファ選択メニュー
menu Main
func "戻る (b)" BACK "b"
popup "バッファ選択 (s)" Select "s"
popup "タブ選択 (t)" SelectTab "tT"
func "ソースを表示 (v)" VIEW "vV"
func "ソースを編集 (e)" EDIT "eE"
func "ソースを保存 (S)" SAVE "S"
func "再読み込み (r)" RELOAD "rR"
nop "────────"
func "リンクを表示 (a)" GOTO_LINK "a"
func "新タブで表示 (n)" TAB_LINK "nN"
func "リンクを保存 (A)" SAVE_LINK "A"
func "画像を表示 (i)" VIEW_IMAGE "i"
func "画像を保存 (I)" SAVE_IMAGE "I"
func "フレーム表示 (f)" FRAME "fF"
nop "────────"
func "ブックマーク (B)" BOOKMARK "B"
func "ヘルプ (h)" HELP "hH"
func "オプション (o)" OPTIONS "oO"
nop "────────"
func "終了 (q)" QUIT "qQ"
end
+44
View File
@@ -0,0 +1,44 @@
# A sample of ~/.w3m/menu (submenu type)
#
# menu MENU_ID
# func LABEL FUNCTION KEYS
# popup LABEL MENU_ID KEYS
# nop LABEL
# end
#
# MENU_ID
# Main: メインメニュー
# Select: バッファ選択メニュー
menu Main
func "戻る (b)" BACK "b"
popup "バッファ操作>(f)" Buffer "fF"
popup "リンク操作 >(l)" Link "lL"
nop "────────"
popup "ブックマーク>(B)" Bookmark "B"
func "ヘルプ (h)" HELP "hH"
func "オプション (o)" OPTIONS "oO"
nop "────────"
func "終了 (q)" QUIT "qQ"
end
menu Buffer
popup "バッファ選択 (s)" Select "s"
func "ソースを表示 (v)" VIEW "vV"
func "ソースを編集 (e)" EDIT "eE"
func "ソースを保存 (S)" SAVE "S"
func "再読み込み (r)" RELOAD "rR"
end
menu Link
func "リンクを表示 (a)" GOTO_LINK "a"
func "リンクを保存 (A)" SAVE_LINK "A"
func "画像を表示 (i)" VIEW_IMAGE "i"
func "画像を保存 (I)" SAVE_IMAGE "I"
func "フレーム表示 (f)" FRAME "fF"
end
menu Bookmark
func "ブックマークを読み込む (b)" BOOKMARK "bB"
func "ブックマークに追加 (a)" ADD_BOOKMARK "aA"
end
+518
View File
@@ -0,0 +1,518 @@
.\"
.TH W3M 1 "Jun 6 2000" "UNIX"
.SH NAME
.B w3m
\- text base pager/WWW browser
.SH SYNOPSYS
.B w3m
[options] [file | URL]
.SH DESCRIPTION
.SS はじめに
.B w3m
は,テキストベースのページャ/WWWブラウザです.これを使うと,
.I kterm\fR(1)
などのキャラクタ端末上で,ローカルファイルを見たり,WWWの内容を見たりすること
ができます.
.PP
引数にファイル名を指定すればそのファイルを表示し,URLを指定すればその内容を表
示します.何も指定しなければ,標準入力の内容を表示します.ただし,標準入力が
.I tty\fR(4)
である場合には,何もせずに終了します.
.PP
オプションは次の通りです.
.TP
.BI + 番号
起動後,指定の行番号に移動する.
.TP
.BI \-t\
タブの幅を指定する.デフォルトは 8.
.TP
.B \-r
text/plainの文書を表示する場合,重ね打ちによる強調文字を表示しない.
このオプションを付けない場合,
``A^H_''
はAのアンダーラインとして表示され,
``A^HA''
はAのボールドとして表示される.
.TP
.BI \-l\ 行数
標準入力の内容を表示するときに保存される最大行数を指定する.
デフォルトは10000
.TP
.B \-s
Shift_JISコードで表示する.
.TP
.B \-e
EUCコードで表示する.
.TP
.B \-j
JIS (ISO-2022-JP)コードで表示する.
.TP
.BI \-O\ e|s|j|N|m
表示に使う文字コードを指定する.
.TP
.BI \-I\ e|s
入力文書の文字コードを指定する.
.TP
.BI \-T\ タイプ
表示する文書のタイプを指定する.この指定がない場合,ファイル名の拡張子によって
自動判別される.判別できない場合はtext/plainとみなされる.
.PP
.RS
.B 例:
.TP
cat hoge*.html | w3m -T text/html
標準入力からHTMLファイルを読んで表示する
.TP
w3m -T text/plain hoge*.html
HTMLファイルのソースを表示する
.RE
.TP
.B \-m
Internet messageモードで表示する.Internet messageモードの場合,
ヘッダの内容を見て,Content-Type: があればそれを参考にする.電子メールや
ネットニュースの記事を読むときに便利.
.TP
.B \-v
visual startupモード.
コマンドライン引数に URL やファイルを指定していなくても
初期画面が表示される.
.TP
.B \-B
Bookmarkを表示する.
.TP
.BI \-bookmark\ file
Bookmark のファイルを指定する.
.TP
.B \-M
カラー表示をしない.
.TP
.B \-F
フレームを自動表示する.
.TP
.B \-S
連続する空行を1行にまとめて表示する.
.TP
.B \-X
.B w3m
終了時に,以前の画面に戻らない.
.TP
.BI \-title =TERM
端末のタイトル文字列を設定する.
.TP
.B \-W
折り返しサーチを使うかどうかを切りかえる.
.TP
.BI \-o\ option=value
オプションを指定する.
.TP
.B \-show-option
利用できるオプションを表示する.
.TP
.B \-no\-proxy
プロキシを利用しない.
.TP
.BI \-pauth\ user:pass
プロキシ認証用のユーザ名とパスワードを指定する.
.TP
.B \-no\-mouse
マウスを利用しない.
.TP
.B \-cookie
クッキーを処理する.
.TP
.B \-no\-cookie
クッキーを処理しない.
.TP
.B \-num
行番号を表示する.
.TP
.B \-dump
URLの内容を読みこみ,整形されたバッファの内容を標準出力に書き出す.
文書の幅は80桁と仮定される.この幅は,次の
.B \-cols
オプションで変更可能.
.TP
.BI \-cols\
.B \-dump
オプションを使う場合に,文書の幅を指定する.
.TP
.BI \-ppc\ ピクセル数
文字の幅を指定する.デフォルトは 8.0.
.TP
.B \-dump_source
URLの内容を読みこみ,整形せずに標準出力に書き出す.漢字コード変換もされない.
.TP
.B \-dump_head
URLにアクセスし,ヘッダ情報を出力する.
.TP
.B \-dump_both
URLにアクセスし,ヘッダ情報とHTMLソースを出力する.
.TP
.B \-dump_extra
URLにアクセスし,拡張情報とヘッダ情報とHTMLソースを出力する.
.TP
.BI \-post\ file
ファイルの内容をPOSTする.
.TP
.BI \-header\ string
HTTP要求ヘッダを追加する.
.TP
.BI \-config\ file
configのファイルを指定する.
.TP
.B -help
ヘルプを表示する.
.TP
.B -version
w3m versionを表示する.
.SS 文書の表示内容
HTML文書を表示しているときには,次のような表示になります.
.in +8n
.TS
box tab(;);
l|c|c
l|c|c
l|c|c
l|c|c.
;カラー表示時;白黒表示時
_
リンク;青色;下線
インライン画像;緑色;反転表示
FORMの入力部分;赤色;反転表示
.TE
.PP
カラー表示時の色は,オプション設定パネル
.B o
で変更することができます.
.SS 起動後の使いかた
起動した後は,1文字のコマンドをキーボードから入力することで
.B w3m
を操作します.
.PP
コマンドには次のようなものがあります.以下の記述では,
.B C-x
はコントロールxを表します.また,
.B SPC
はスペースバー,
.B RET
はリターンキー,
.B ESC
はエスケープキーです.
.PP
ここで書いてあるのは,オリジナル版のキー操作です.
.\" \fIlynx\fr(1)
.\" 風のキー操作用にコンパイルしてあるものについては,
.\" \fIw3m_lynx(1)
.\" をごらんください.
.SS ページ/カーソル移動
.TP 1i
.B SPC, C-v
次のページを表示します.
.TP
.B b, "ESC v"
前のページを表示します.
.TP
.B l, C-f, 右矢印キー
カーソルを右に移動します.
.TP
.B h, C-b, 左矢印キー
カーソルを左に移動します.
.TP
.B j, C-n, 下矢印キー
カーソルを下に移動します.
.TP
.B k, C-p, 上矢印キー
カーソルを上に移動します.
.TP
.B J
画面を1行上にスクロールします.
.TP
.B K
画面を1行下にスクロールします.
.TP
.B ^
行頭に移動します.
.TP
.B $
行末に移動します.
.TP
.B w
次の単語に移動します.
.TP
.B W
前の単語に移動します.
.TP
.B >
画面全体を右にずらします.(表示内容を左にずらす)
.TP
.B <
画面全体を左にずらします.(表示内容を右にずらす)
.TP
.B ". "
画面全体を1文字右にずらします.(表示内容を左にずらす)
.TP
.B ", "
画面全体を1文字左にずらします.(表示内容を右にずらす)
.TP
.B g, M-<
文書のいちばん上の行に移動します.
.TP
.B G, M->
文書のいちばん下の行に移動します.
.TP
.B "ESC g"
画面下で行番号を入力し,そこで指定した行に移動します.
ここで
.$
を入力すると,最終行に移動します.
.TP
.B Z
カーソルのある位置を行の中央に移動します.
.TP
.B z
カーソルのある行を画面の中央に移動します.
.TP
.B TAB
次のリンクに移動します.
.TP
.B C-u, "ESC TAB"
前のリンクに移動します.
.TP
.B [
最初のリンクに移動します.
.TP
.B ]
最後のリンクに移動します.
.SS ハイパーリンク操作
.TP
.B RET
現在カーソルがあるリンクが指す先の文書を読みこみます.
.TP
.B a, "ESC RET"
現在カーソルがあるリンクが指す先の文書をファイルに保存します.
.TP
.B u
現在カーソルがあるリンクが指す先のURLを表示します.
.TP
.B i
リンクに関連付けられた画像へのURLの表示します.
.TP
.B I
現在カーソルがあるリンクに対応する画像を表示します.
.TP
.B "ESC I"
現在カーソルがあるリンクが指す画像をファイルに保存します.
.TP
.B ":"
URL風の文字列をリンクにします.この機能は,HTMLでない文書を
読んでいるときにも有効です.
.TP
.B "ESC :"
Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を
読んでいるときにも有効です.
.TP
.B c
現在の文書のURLを表示します.
.TP
.B =
現在の文書に関する情報を表示します.
.TP
.B C-g
ページ中での現在位置を表示します.
.TP
.B C-h
URL履歴を表示します.
.TP
.B F
<FRAMESET>を含む文書を表示しているときに,<FRAME>タグの指す複数の文書を1つの
文書に変換して表示します.
.TP
.B M
現在見ているページを,外部ブラウザを使って表示します.
.B 2M, 3M
で2番目と3番目のブラウザを使います.
.TP
.B "ESC M"
現在のリンク先を,外部ブラウザを使って表示します.
.B "2ESC M", "3ESC M"
で2番目と3番目のブラウザを使います.
.El
.SS ファイルとURL関係の操作
.TP
.B U
URLを指定して開きます.
.TP
.B V
ローカルファイルを指定して開きます.
.TP
.B @
コマンドを実行し,結果を全部読んでから表示します.
.TP
.B #
コマンドを実行し,結果を読みこみながら表示します.
.SS バッファ操作
.TP
.B B
現在見ているバッファを削除し,一つ前のバッファを表示します.
.TP
.B v
HTMLのソースを表示します.
.TP
.B s
バッファ選択モードに入ります.
.TP
.B E
現在見ているバッファがローカルファイルの場合,そのファイルをエディタで編集しま
す.エディタを終了した後,そのファイルを再度読み込みます.
.TP
.B C-l
画面を再描画します.
.TP
.B R
バッファを再度読み込みます.
.TP
.B S
バッファの表示内容をファイルに保存します.
.TP
.B "ESC s"
HTMLのソースをファイルに保存します.
.v
でソースを表示して
.S
で保存するのとほぼ同じですが,
.B "ESC s"
で保存したファイルは漢字コードがオリジナルのままであるのに対して,
.B "v S"
で保存すると現在表示に使っている漢字コードに変換されて保存されます.
.TP
.B "ESC e"
現在表示されているバッファを,表示されている形式のままエディタで編集します.
.SS バッファ選択モード
.B s
でバッファ選択モードに入ったときのキー操作です.
.TP
.B k, C-p
一つ上のバッファを選択します.
.TP
.B j, C-n
一つ下のバッファを選択します.
.TP
.B D
現在選択しているバッファを削除します.
.TP
.B RET
現在選択しているバッファを表示します.
.El
.SS ブックマーク操作
.TP
.B "ESC b"
ブックマークを読み込みます.
.TP
.B "ESC a"
現在見ているページをブックマークに追加します.
.SS 検索
.TP
.B /, C-s
現在のカーソル位置からファイル末尾に向かって正規表現を検索します.
.TP
.B ?, C-r
現在のカーソル位置からファイルの先頭に向かって正規表現を検索します.
.TP
.B n
次を検索します.
.TP
.B N
前を検索します.
.TP
.B C-w
折り返し検索モードを切り換えます.
.SS マーク操作
.TP
.B C-SPC
マークを設定/解除します.マークは反転表示されます.
.TP
.B "ESC p"
一つ前のマークに移動します.
.TP
.B "ESC n"
一つ後のマークに移動します.
.TP
.B "\""
正規表現で指定された文字列を全てマークします.
.SS その他
.TP
.B !
シェルコマンドを実行します.
.TP
.B H
ヘルプファイルを表示します.
.TP
.B o
オプション設定パネルを表示します.
.TP
.B C-k
クッキー一覧を表示します.
.TP
.B C-c
文書の読み込みを中断します.
.TP
.B C-z
サスペンドします.
.TP
.B q
.B w3m
を終了します.オプションの設定によって,終了するかどうか確認します.
.TP
.B Q
確認せずに
.B w3m
を終了します.
.SS 行編集
画面の最下行で文字列を入力する場合に有効なキー操作です.
.TP
.B C-f
カーソルを右に移動します.
.TP
.B C-b
カーソルを左に移動します.
.TP
.B C-h
カーソルの直前の文字を削除します.
.TP
.B C-d
カーソル位置の文字を削除します.
.TP
.B C-k
カーソル位置から後を削除します.
.TP
.B C-u
カーソル位置から前を削除します.
.TP
.B C-a
文字列の先頭に移動します.
.TP
.B C-e
文字列の最後に移動します.
.TP
.B C-p
ヒストリから一つ前の文字列を取り出します.
.TP
.B C-n
ヒストリから次の文字列を取り出します.
.TP
.B TAB, SPC
ファイル名入力時に,ファイル名を補完します.
.TP
.B RET
入力を終了します.
.SH SEE ALSO
.I kterm\fR(1),
.\" .I lynx\fR(1),
.\" .I w3m_lynx\fR(1),
.I tty\fR(4)
.SH AUTHOR
伊藤 彰則
.br
aito@fw.ipsj.or.jp