Emacs 24.4になってEmacs標準添付のブラウザ eww が話題になっていますね。
ewwは生まれたばかりで機能は少なく、これからの発展が楽しみです。
とにかくレンダリングが速いので emacs-w3mから乗り換える予定です。
そういえば、ewwで プロキシ を使う方法についてはまだ載っていませんね。
M-x apropos RET eww-.+proxy で調べても見付かりません。
結論を言うとewwでもプロキシは使えます。
ewwは内部で url-retrieve-synchronously 関数を使っており、
これのおかげでEmacsそのものがHTTPクライアントになっています。
よって、url.elの層でプロキシを設定すればいいのです。
そうすることでewwはもちろんのこと、
package.elなど他のネットワークアクセスが
伴うelispにも適用されます。
方法は2つあります。
- 環境変数 http_proxy を設定する
- url-proxy-services 変数を設定する
環境変数 http_proxy の設定は、
Emacsから起動する外部プログラムにも
波及するので前者がおすすめです。
たとえば、プロキシサーバが 127.0.0.1:8338 のときは
$ http_proxy=http://localhost:8338 emacs
のようにEmacsを起動するか、init.elに
(setq url-proxy-services '(("http" . "127.0.0.1:8338")))
の設定を加えます。
ファイヤーウォール を抜けることはもちろんのこと、
便利な ローカルプロキシ が使えます。
例えば polipo (squid) + adzapper で 広告避け できたりします。
コアはシンプルに保ち、様々な機能はプロキシに
丸投げするというewwの潔さは好感が持てます。
願わくばフックを充実させてほしいなと…
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。