w3m (テキストブラウザー)
- たかし、2023-07-02 (陰暦05月15日) - 2024-11-09 (陰暦10月09日)
- OpenBSD 7.6、w3m/0.5.3+git2023071
概要
w3m は text based な視覺系の user agent です (所謂、テキストブラウザ)。
次の樣な特徴を持ちます。
- terminal 上で動作するため、X11 が不要
- CSS、JS、音聲、動畫には非對應
- 畫像を見るには nsxiv など、外部の command を呼び出す必要あり
- 畫像對應版の w3m-img もあるが、この文書では扱はない
- tab-browsing 機能を持つが不便 (HTML の讀み込み中は tab 切替ができない)
- 栞 (bookmark) は單純な HTML 形式で保存される
w3m の使用方法などは、w3m manual を先に參照してください。
本記事の内容は原則、w3m の設定を變更する前の狀態を前提とします。
使用方法
CLIから起動する
w3m は CLI から起動します。option として-v を指定すると、w3m の「start up page」が表示されます。
$ w3m -v
また、表示したい URL または PC に保存された文書の場處を指定できます。
$ w3m https://example.com/
$ w3m local-file.html
-B を指定すれば栞を初期表示できます。ただし、あらかじめ、栞を追加して ~/.w3m/bookmark.html
が作成されてゐる必要があります。
$ w3m -B
基本操作について
w3m のキー割當について、重要さうなものを説明します。完全な一覽は、H キーを押して表示される「w3m help page」で確認できます。
尚、w3m では、Alt を Esc で代用できます。
- 「Left、Right、Up、Down」-- cursor を移動
- 「Tab」-- cursor を次の link まで移動
- 「Shift+Tab」-- cursor を前の link まで移動
- 「Enter」-- link を開く、form への入力を開始、ボタンをクリック
- 「u」-- link の先の URL を確認
- 「I」(IMG要素上) -- 畫像を外部の viewer で開く
- 「i」(IMG要素上) -- 畫像の URL を確認
- 「Shift+U」-- URL の入力を開始
- 「Ctrl+u」(URL の入力中) -- URL を空にする
- 「Shift+B」-- 現在の文書を閉ぢ、前の文書に戾る
- 「Ctrl+l (エル)」-- 再描畫 (表示の崩れを直す)
- 「Alt+a」-- 表示中の文書を栞に追加
- 「Alt+b」-- 栞の一覽を表示
- 「/」-- 文書内檢索 (前方)
- 「?」-- 文書内檢索 (後方)
- 「Shift+H」-- w3m の操作方法を表示 (w3m help page)
- 「o」-- w3m の設定畫面を表示 (Option Setting Panel)
- 「v」-- 文書の source code を表示
- 「q」の後に「y」-- w3m を終了
設定畫面について
個人的におすすめな設定を紹介します。
設定を變更するには、「o」で設定を開き、設定項目を變更した後、OK のボタンを選択して「Enter」します。
- テキストエディターを指定 (ブックマーク編輯などに使用)
- Editor を「nano -S」や「vim」に設定
- 履歴を無效化
- Use URL history を「NO」に設定
- Save URL history を「NO」に設定
- HTTP header を Firefox 風に (お好みで)
- User-Agent identification string を次の樣に設定
Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0
- Accept-Language header を「en-US,en;q=0.5」に設定
- Accept-Encoding header を「gzip, deflate」に設定
- Accept header を次の樣に設定
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- 尚、w3m の通信は HTTP 1.0 であるため、Firefox と完全には一致されられない
- Referer を無效化
- Suppress `Referer:' header を「YES」に設定
- 一部の domain でのみ Cookie を許可する
- Enable cookie processing を「YES」に、
Accept cookies を「YES」に、
Domains to reject cookies from を「.」に、
Domains to accept cookies from を「example.com,www.gnu.org」の樣に設定
- domain は「,」區切りで複數指定可能
- 罫線などをASCIIのみで表現する
- Character type for border of table and menu を「ASCII」に設定
外部Viewerを設定する
HTML や text 以外の file を開くための外部の viewer は、~/.w3m/mailcap
の file で指定します。この file が無ければ作成してください。
構文は「MIME_TYPE; COMMAND
」です。COMMAND の内に書かれた「%s」は、一時保存された file の名に置換されます。改行することで複數の設定を記入できます。
例へば ~/.w3m/mailcap
に次を記述すれば畫像が nsxiv で開かれます。
image/*; nsxiv %s
TorやI2Pに接續する
w3m で Tor や I2P に接續する方法を説明します。先に tor・torsocks・i2p の導入・設定を濟ませてください。
tor に接續するには、torsock 經由で w3m を起動します。
$ torsocks w3m -v
I2P に接續するには、option の http_proxy
に、I2P daemon を動かしてゐる host・port を指定します (典型的には http://127.0.0.1:444/
)。https に生の IP で接續されるのを避けるために、https_proxy
にも同じ内容を設定すると良いでせう。
$ w3m -o http_proxy=http://127.0.0.1:4444/ -o https_proxy=http://127.0.0.1:4444/ -v
尚、option から http_proxy を設定した狀態で w3m を起動し、設定畫面を開くと、proxy 設定欄の内容が http_proxy の内容で上書きされます。ご注意ください。
Tor や I2P に接續するための alias を設定すると便利です。~/.kshrc
などに次の内容を追記します。
alias tsw3m='torsocks w3m'
alias w3m-i2p='w3m -o http_proxy=http://127.0.0.1:4444/ -o https_proxy=http://127.0.0.1:4444/'
栞を管理する
w3m の栞 (bookmark) は、~/.w3m/bookmark.html
といふ file に保存されます。
表示中の文書を栞に追加するには、「Alt+a」を入力します。
- 栞を追加する時は、Section・URL・Title を入力する
- Section が未指定だと「Miscellaneous」に分類される
- 新しい Section を作るには New Section の欄に名前を入力する
栞の一覽を表示するには「Shift+B」を押します。
w3m は、栞を登録した後で内容を修正したり削除したりする機能を持たず、~/.w3m/bookmark.html
を直接編輯する必要があります。
栞を表示した狀態で「Alt+e」を押せば、栞を text editor で開いて編輯できます。
問題解決
文字化けする
w3m は文書の charset を自動判別できず、しばしば日本語が文字化けします。直し方はいくつかありますが、次の方法が簡單です。
- 「+」を押してInformation about current page を開く
- Document Charset を「Japanese (Shift_JIS, CP932)」や「Japanese (EUC-JP)」に變更
- Change のボタンを選択して「Enter」を押す
keymapに無い機能を設定變更無しで使ひたい
w3m の標準のキー割當では使用できない機能があります。「w3m help page」の中で、<NOT ASSIGNED> と書かれた物がそれです。
「Alt+c」の後に機能名を大文字で入力すると、その機能を呼び出せます。
例へば、「Alt+c」の後に「SUBMIT」と入力して「Enter」を押すと、cursor の位置にある form を送信できます。これは送信ボタンの無い form で送信を行なふ時に必要です。
また、「CHARSET cp932」と入力すれば、現在の文書を cp932 で encoding されたものとして読み込み直します。
細かい注意點
- A 要素の中に block-level の要素 (DIV、LI など) が入ると正しく解釈されない
- DD 要素の閉ぢタグが省略された場合に正しく解釈されない (OS 次第?)
- HTML に繪文字が含まれると表示が崩れる?
- TITLE 要素が空の文書は、そのままでは栞に追加できない
- 栞を追加する際、Title の欄を手動入力する必要あり
參考
「w3m keymap」「w3m local CGI」などの文言で檢索すると色々な情報が見つかります。
關聯
奧附