-*- Text -*- Subject: browse-url および browse-url-plus の利用方法 Author: しまだ みつのぶ Date: 1999年6月27日(日) Organization: irchat-PJ Project 0.この文書の概要 ここでは, browse-url および browse-url-plus の利用方法を説明しま す. まず, 最初に browse-url の利用方法を簡単に説明し, つづいて browse-url-plus での拡張部分について説明します. 順序 : 0. この文章の概要 1. 簡単な browse-url の使い方 2. メール送信関数 3. URL で指定されるファイルをダウンロード 4. browse-url 関数の複製 ∞. 最後に ---------------- 1.簡単な browse-url の使い方 1.1.最も簡単な browse-url の使い方 まず, 最も簡単な使い方です. これは設定も何も必要ありません. URL が記述されてある場所にカーソルをもっていき, M-x browse-url としてみましょう. そうすると, minibuffer に URL: (カーソル位置のURL) と表示されます. ここで RETURN を叩くと, ブラウザが起動され, その URL がブラウザに表示されます. 1.2.ブラウザを指定したい 「えっ, 表示されないぞ」という方もいると思います. それはなぜか. ブラウザが指定されていない, もしくはデフォルトのブラウザが存在し ないからです. そこで, ブラウザを指定してやることで, 表示できるよ うにします. (setq browse-url-browser-function "netscape") これを .emacs のどこかに記述しておくことで, 表示されるようになり ます. 1.3.URLによってブラウザを変更したい(Emacs20 のみ) Emacs20 では, browse-url-browser-function がリストであることも許 されます. (setq browse-url-browser-function '(("^mailto:" . browse-url-compose-mail) ("." . browse-url-netscape))) このように, (regexp . function) のペアのリストにしておくことで, URL によって挙動を変更することができます. この場合, メールアドレ スに対してはメール書き関数が, それ以外は Netscaoe Navigator / Communicator が起動するようになります. 1.4.キーバインド 毎回わざわざ M-x browse-url とするのは, 面倒です. キーにバインド してしまいましょう. (cond ((featurep 'xemacs) (define-key global-map [(control return)] 'browse-url)) (t (define-key global-map [C-return] 'browse-url))) これで, C-return すると, browse-url が起動することになります. カーソルを URL にもっていき, C-return することで, ブラウザを呼び 出すことができるようになります. ---------------- 2.メール送信関数 先程 1.3. の例で用いた browse-url-compose-mail ですが, これは, 指定されたアドレス宛のメールを compose-mail 関数で記述する関数で す. では, このメールを書くための関数を, 普段使っているもの, たと えば mew-send や wl-draft にしたい場合はどうすればよいのでしょうか. こういうときに browse-url-plus の登場です. browse-url-plus.el を load-path のとおったところにおき, (autoload 'browse-url-plus-compose-mail "browse-url-plus" "A little-extension for browse-url" t) (setq browse-url-plus-compose-mail-function 'wl-draft) (setq browse-url-browser-function '(("^mailto:" . browse-url-plus-compose-mail) ("." . browse-url-netscape))) (cond ((featurep 'xemacs) (define-key global-map [(control return)] 'browse-url-plus-x)) ((<= 20 emacs-major-version) (define-key global-map [C-return] 'browse-url)) (t (define-key global-map [C-return] 'browse-url-plus-x))) と .emacs に書いておきます. これで C-return とすると, メールアド レスが記述されてある場所ならば, wl-draft が呼ばれ, Wanderlust を 利用してメールを書くことができるようになります. Mew な方は, wl-draft の部分を mew-send に変更してください. ---------------- 3.URL で指定されるファイルをダウンロード URL で指定されたファイルをブラウザで見るのではなく, wgetを利用し てダウンロードしたい場合どうすればよいのでしょうか. これも簡単です. 先程の設定のうち, browse-url-browser-function を (setq browse-url-browser-function '(("^mailto:" . browse-url-plus-compose-mail) ("." . browse-url-plus-wget-url))) とすることで, C-return すれば wget が呼ばれるようになります. ---------------- 4.browse-url 関数の複製 では, キーによって, ブラウザ起動とwgetでのダウンロードを使い分け たい場合はどうすればよいのでしょうか. このためには, まず browse-url 関数を複製します. (browse-url-plus browse-url-alternative "(Alternative)URL: " browse-url-alternative-browser-function) これで, browse-url-alternative 関数が作られます. browse-url 関数 に対する browse-url-browser-function に相当する変数は, 関数生成 時に最後の引数として与えた browse-url-alternative-browser-function です. (setq browse-url-browser-function '(("^mailto:" . browse-url-plus-compose-mail) ("." . browse-url-netscape))) (setq browse-url-alternative-browser-function '(("^mailto:" . browse-url-plus-compose-mail) ("." . browse-url-plus-wget-url))) (cond ((featurep 'xemacs) (define-key global-map [(control return)] 'browse-url-plus-x) (define-key global-map [(meta return)] 'browse-url-alternative)) ((<= 20 emacs-major-version) (define-key global-map [C-return] 'browse-url) (define-key global-map [M-return] 'browse-url-alternative)) (t (define-key global-map [C-return] 'browse-url-plus-x) (define-key global-map [M-return] 'browse-url-alternative))) こうすることで, C-return でブラウザ起動, M-return で wget による ダウンロード, と使い分けることができます. ---------------- ∞.最後に 「irchat-pj にも URL連動機能をつけたい」…こう, ふと思いついたの が browse-url-plus を書くきっかけです. あるとき「browse-url とい うのがデフォルトでついてるよ」と紹介され, 使ってみると, 私が実装 しようと考えていたものがほぼ実現されており, 「これでいいや」と思 ったのですが, 使い込めば込むほど欲がでるもので, ・メール送信関数を変更したい ・wget できるようにしたい ・キーによって, 挙動を変更したい ・Emacs20 以外でも, URL によって挙動を変更したい などと思うようになり, 思うがままに書きあげた(カット & コピーとも いう :-) のが browse-url-plus です. # 同時に, XEmacsって案外貧弱だな, という感想ももちました. (*1) 最後に, browse-url-plus の設定は, 付属の browse-url-plus.emacs を参考にしてください. もし, ご意見・ご要望・質問・バグ報告等ございましたら, メールを simm@irc.fan.gr.jp までお願いします. IRC 上で見つけてくださった場 合は, そこでもかまいません. 週末のテレホーダイ時間なら, たいがい IRCnetのどこかにいると思います. nick は simm[0-9]* にマッチする いずれかです. ---------------- (注) simm@irc.fan.gr.jp, 27 Jun 1999 (*1) XEmacs21 では, fsf-compat パッケージにある thingatpt.el により Emacs20 と同等の動作をさせることができます.