ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

w3mで快適ブラウジング

(2013-03-09 追記 - 2021-05-09 転記・追記)

 

(2021-05-09 追記)

当サイトでは、3番目に人気のページであり、正直なぜ今でも人気なのか、把握できていない。^^; 

はじめに

w3mは、テキストブラウザとしては、テーブル、フレームの表示が優れており、かなり以前から使っているお気に入りのソフト。
最近はブラウザというよりも、ページャやファイルビューア、さらにアプリケーションのランチャとして利用することも多くなってきた。

w3mの魅力は豊富で、まだまだ活用しきれていない筆者だが、w3mを利用する上でのTipsや便利な活用法をこのページに記載する。


まず最初に、参考にさせて頂いたサイトを以下に示す。

f:id:hymd3a:20210509201338p:plain

w3mの動作画面

w3mのインストール

w3mのインストールは以下のとおり。

sudo apt install w3m

なお、w3mでも画像を表示させたい場合は、以下のとおり w3m-img をインストールする。

sudo apt install w3m-img

w3mのTips

「H」キーでヘルプ

w3mのキー操作は難しくないが、慣れるまでは「H」(大文字のH)キーでヘルプがでるので、わからないキーは参照できる。

文字化けしたら

いろいろなサイトをw3mで閲覧していると、文字化けしてしまうサイトがある。
そんな時には、「=」キーを押して、そのサイトの情報を表示し、「Document Charset」の所の文字コードを変更し、「Change」を押す。
変更した文字コードが適切ならば、ちゃんと表示されるようになる。

それでも見えない、読めない…

文字コードを変更しても、画像がたくさんあるサイトや、java スクリプトを用いたサイトで見にくいこともある。
そんな時には、「M」(大文字のM)キーを押して、chrome等のブラウザを起動する。
なお、w3mのデフォルトでは、「o」(オプション)の「外部ブラウザ」の設定が、「/usr/bin/mozilla」だが、「/usr/bin/google-chrome &」と最後に「&」を付けることにより、ブラウザ起動後、すぐにw3mに戻って操作することができるようになる。

 

w3mの起動とテキストファイルの活用

w3mの起動方法には、いくつかあるが、筆者の気にいっているのは、以下の3つのうち一番上の上の方法である。

$ w3m bookmark.txt カレントディレクトリのbookmark.txtを開く
$ w3m . カレントディレクトリのファイルを一覧
$ w3m -B w3mのブックマークを開く

1番目の方法のテキストファイルの名前は、なんでも構わないが、ここでは、例としてbookmark.txtとして説明する。
試しに、以下の内容のbookmark.txtをホームディレクトリに作成してください。

===== files
.
/usr/share/doc/w3m/ja/
file:///home/hoge/.vimrc
file:///home/hoge/ .emacs
file:///.w3m/bookmark.htnl ← w3mのブックマーク
file:///.mozilla/firefox/xxxxx.default/bookmarks.html ← firefoxのブックマーク
===== url
http://www.google.co.jp/
http://www.yahoo.co.jp/

単純なテキストファイルなので、好きなファイルを記入してください。
どんなにディレクトリ階層が深いところのファイルでも、/からの絶対アドレスを記載すること。

bookmark.txtの準備ができたら、w3mを起動する。

$ w3m bookmark.txt

なんの変哲もない通常のテキストファイルとして、bookmark.txtが開かれる。

魔法のキー「:」

w3mには、魔法のように便利なキーがある。
「:」は、urlをリンクにするキーです。
上記の例では、googleとyahooにジャンプできるようになる。

開いたファイルが、テキストファイル、htmlファイルである場合は、エディタを起動して、編集することができる。
「E」でエディタが起動し、編集セーブ後、再びw3mに戻ってくることができるので
bookmark.txtにファイル等を追加したい場合は、便利である。

起動を簡単に

毎回、「w3m bookmark.txt」と入力するのは、面倒である。
そこで、以下のようなshellスクリプトを準備すると起動が簡単になる。

#! /bin/sh
# w3 for w3m written by H.Yamada 2000/03/20
if [ "$*" != "" ]; then
w3m $*
else
w3m bookmark.txt
fi

筆者は、このスクリプトを「w3」とし、以下のようにして利用している。

$ cp w3 ~/bin
$ chmod +x bin/w3

通常の利用では、「w3」と入力し、hoge.txtを開きたい時には、「w3 hoge.txt」とする。

(2013-03-09追記)
以前利用していた時には、「;(セミコロン)」で、パスを含めたファイル名全体がリンクとなり、便利だったが、今回試したところ、うまく動作しない。^^;

タブを利用する

w3mで閲覧中に、用語や単語の意味を調べたくなることは多々あると思う。
筆者は、googleの検索を多用するので、起動時からgoogleを新しいタブとして開いておけば、いろいろと便利である。
w3mには、タブ機能があるので、起動時から新しいタブでgoogleを開くようにする。

$ w3m -N boobkmark.txt www.google.co.jp

コマンドとしては、上記で良いが、入力が面倒なので上記スクリプトを少し変更する。

#! /bin/sh
# w3 for w3m written by H.Yamada 2000/03/20
if [ "$*" != "" ]; then
    w3m $*
else
    w3m -N bookmark.txt www.google.co.jp
fi

これで、最初のタブに、bookmark.txt、次のタブにgoogleが呼び出され、最初に書いたboobkmark.txtが表示される。

基本的なキー操作としては、「}」で次のタブ、「{」で前のタブに移動できる。

w3mの設定で、「マウスを使う」設定にしてある場合は、シフトを押しながら、マウスをドラックすることで、文字を選択することが可能である。
実際にウェブを閲覧中にgoogle検索する場合のキー操作を以下に示す。

  1. webを閲覧中に、調べたい単語をshiftを押しながら、ドラックする
  2. googleのタブをマウスでクリックして、開く
  3. googleのキーワード入力でEnterを押し、マウスの中ボタンで検索したい言葉をペーストし、Enter
  4. tabキーを押して、検索開始

ちょっと、面倒だが、少しは便利になるかと… ^^;
もう少し便利な方法は、下の節で説明する。

ローカルCGIの活用

w3mには、ローカルCGIという機能があり、w3mの機能を拡張することができる。
本来のローカルCGIは、ウェブサイトで設定するCGIのテストに用いるための用だが、筆者の簡単な活用法を以下に示す。

いつでもgoogle検索

サイトを閲覧していると、googleで関連の情報を検索したくなることは、良くあると思う。
w3mのドキュメントの中には、便利なCGIのサンプルに関する記述がある。

この中で、googleの検索を簡単にする方法を示す。
ファイル名はなんでも良いが、例として google.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_

 上記ファイルを作成したら、~/cgi-binというディレクトリを作成する。
作成したcgi-binに、ファイルを移動し、実行権を与える。

$ mkdir ~/cgi-bin
$ mv google.cgi ~cgi-bin
$ chmod +x ~/cgi-bin/google.cgi

次に、w3m を起動して、「o」でオプションメニューを開く。
まず、「~/cgi-binで表されるディレクトリ」に、「/home/username/cgi-bin」と入力。
続いて、辞書よりもgoogleを便利に検索したい場合は、辞書引きコマンドのURLに「file:/cgi-bin/google.cgi」と記入する。

ちなみに、元に戻したい場合は、辞書引きコマンドは、「file:///$LIB/w3mdict.cgi」(筆者の備忘録)。

それでは、実際にカーソルの単語をgoogle検索する。

  1. 「T」シフトを押しながら、新しいタブを開く
  2. 検索したい語までカーソルを移動し、「M-W」を押す。
  3. google検索結果が表示される。

新しいタブを開いてから、google検索することにより、元から閲覧していたサイトを消さずに検索できるので、少し便利。

筆者のひとりごと:

W3m-control を利用して、いきなりタブを開いて、google検索したかったが検索前のバッファが残ってしまい、うまく動作させられなかった。
どなたか、スマートな方法を教えてください。

ローカルCGiのさらに高度な使い方については、以下のサイトを参照してください。

shellやruby等のスクリプトを活用する

ローカルCGIは大変便利だが、たくさんの言語が覚えられないへたれな筆者にはやや使いにくい印象を持った。
そこで、w3mからshellやrubyスクリプトを利用する方法を記載する。

w3mから、外部のコマンドを呼び出す方法は、「!」キーである。
w3mを起動して、以下のように外部コマンドを起動し、表示を確認する。

! ls -l
! pwd

上記コマンドは、あまり役に立たないが、以下のコマンドを実行する。

! printenv | grep W3M

上記環境変数の中で、W3M_URLはちょっと使えそう。
それでは、続いて、以下のコマンドを入力。

! printenv | grep W3M_URL | vi -

最後の、「vi -」の「-」も忘れずに。

閲覧していたサイトのURLが1行目に入力されて、viエディタが起動する。

W3M_URL=http://www.google.co.jp

この機能を使えば、閲覧中にサイトのURLや用語のメモをとるのに便利に使えそうだ。

 

それでは、~/.w3m/keymap というファイルを作成し、以下のコマンドを記入する。

keymap A EXEC_SHELL "printenv |grep W3M_URL | vi -"

w3mでは、EXEC_SHELL コマンドに内容を書くことにより、w3mの中からコマンドを起動することができる。
上記の記述の場合は、「A」という文字を入力する。

実際の活用では、以下のような手順になる。

  1. メモをとりたい部分を選択して、コピー
  2. 「A」キーを押して、vi エディタを起動し、ペースト

後で、メモを見る時にも、w3mでみれば、URLの部分で「:」キーを押せば、リンクになって、簡単にURLへジャンプできる。

いろいろな機能を割り当てるためには、空いているキーの情報が必要だ。
以下は、筆者がいい加減に調べた機能の割り当てられていないキーである。
w3mに割り当てが無くても、他のターミナルやgnome等の環境で、利用されていることもあるので、実際に確認しながら設定すること。

A,C,O,X,Y
M-d,M-f,M-g,M-h,M-i,M-j,M-q,M-r,M-x,M-y,M-z
M-A,M-B,M-D,M-E,M-F,M-g,M-H,M-J,M-L,M-O,M-P,M-Q,
M-R,M-S,M-T,M-U,M-V,M-X,M-Y,M-Z
M-;,M-.,M-,,M-/,M-@,M-^,M-\

w3mTwitter (2008-0520追記)
w3mで、Twitterを見ることはできますが、投稿はできないようです。
しかし、モバイル版のTwitterにログインすれば、投稿も可能です。
モバイル版のTwitterは、以下のURIでアクセスできます。

おわりに

実のところ、このページをアップしたのは、w3m.vim という vim スクリプトを見つけたからだ。
ちょっと使ってみた範囲では、とても高速で快適である。

w3m.vimのインストールや使い方等については、近々アップする予定なので、またよろしくお願いします。

関連ページ