emacs-w3mでPHPのリファレンス見れるようにしてみた

はじめに

PHPの関数ってすごく沢山用意してくれているけど、仕様を覚えきれない。それに、毎回ブラウザとEmacsを行き来するのは面倒だ。
なら、emacs-w3mで見たらいいじゃないって思いまして、emacs-w3mPHPの公式リファレンスを見れるようにしてみました。

emacs-w3mの導入

w3mがデフォルトで入っていたので、emacs-w3mの導入から行います。
配布されているtar.gzのソースコードが古いのでcsvから最新版を持ってきて導入します。

$ wget http://emacs-w3m.namazu.org/emacs-w3m-1.4.4.tar.gz
$ cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
$ cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
$ tar xvfz emacs-w3m-1.4.4.tar.gz
$ cp -r emacs-w3m-1.4.4 emacs-w3m-cvs
$ cp -r emacs-w3m/* emacs-w3m-cvs
$ cd emacs-w3m-cvs
$ ./configure
$ make
$ sudo make install

設定ファイルに以下の行を追加して導入完了です。

(add-to-list 'load-path "/usr/share/emacs/site-lisp/w3m/")
(require 'w3m-load)

M-x w3mすると、emacs-w3mが起動します。

PHPのリファレンス表示をemacs-w3mでできるようにする。

PHPのリファレンス表示をemacs-w3mでできるように設定します。
php-modeにはデフォルトでリファレンスを見に行ってくれる機能C-c C-f (php-search-documentation)が容易されています。
普通にGUI上で起動するとブラウザが立ち上ります。

そこで、内部の処理を確認してemacs-w3mで見れるように、何が行われているのか確認します。

M-x describe-function RET php-search-documentation

そして、定義元のphp-mode.eへ移動。

(defun php-search-documentation ()
  "Search PHP documentation for the word at point."
  (interactive)
  (browse-url (concat php-search-url (current-word t))))

browse-urlを何とかしたらよさそうなので、確認します。

M-x describe-function RET browse-url

今度は、コードを見なくても、説明に書いてくれていました。

browse-url is an interactive compiled Lisp function.

(browse-url URL &rest ARGS)

Ask a WWW browser to load URL.
Prompts for a URL, defaulting to the URL at or before point.  Variable
`browse-url-browser-function' says which browser to use.
If the URL is a mailto: URL, consult `browse-url-mailto-function'
first, if that exists.

browse-url-browser-function に使うブラウザを登録すると良いよう。

(setq browse-url-browser-function 'w3m-browse-url)

すると見れました。

PHPのリファレンスをemacs-w3mで見てみる

PHPのリファレンスをemacs-w3mで見てみました。
ところが。。。。関数一覧くらいしか表示されてない。
左側のメニューが先に表示されています。(左 nw)

下の方の本文の部分まで移動してみます。(左 nw)

やはり、見づらい。。。。
これは、GUIのブラウザが使えるならGUIブラウザを使いたいです。
ちなみに、browse-url-browser-function が browse-url-default-browserだとFirefoxが起動しました。

みやすい。。。

結論

何の工夫もせずにemacs-w3mphpのリファレンスを見るのは厳しかったです。
やはり、別の方法を取らないといけなさそうですね。

参考

emacs-w3mの導入はここを参考にしました。
http://d.hatena.ne.jp/suikyounohito/20120501/1335856223

おわりに

EmacsPHPのリファレンスを見るのは、リファレンスページをパースしてどこかに保存するなりしないと行けなさそうですね。
もっと、効率的にPHPをかけるようにしたいものです。
2年ぶりくらいにemacs-w3mつかってみて、楽しかったです。