2011年12月10日土曜日

Vimmer視点のEmacs Lispテクニックバイブル レビュー


いつもVimのネタ記事ばかり書いていると思われているShougoです。こんにちは。

今回はネタではありません。ネタじゃないんだからね! 大事なことなので二度言いました。

さて、私がVimテクニックバイブルを(共著で)執筆し、無事発売されたわけなのですが、同時期にるびきちさんも「Emacs Lispテクニックバイブル」を書かれていました。
そのことを知ったのもAmazonに情報が出てからなので、比較的最近です。
目次を見たところ、「これは買わなければならない」と思ったので、早速入手し、一通り読んでいました。
私はVimmerなのでEmacs Lispのことはよく分かりません。
VimテクニックバイブルがEmacs使いの方々に読んでもらいたいと考えているように、
Vimmerの人にもEmacs Lispテクニックバイブルを読んでもらいたいと思ったので、Vimmer視点のレビューをしたいと思います。Emacs本のレビューなのに、Vimのことがたくさん出てくるのは仕様です。

ただし、一通り読んだと言っても、届いてからそんなに日が経っていないですし、まだきちんと読めていないところがたくさんあります。
読みながら思ったことをとりとめなく書いているので、文章のつながりがおかしい部分が多々あるかもしれません。ご了承ください。


Emacs Lispテクニックバイブルを初めて読んだときに思ったのは、「教科書みたい」ということでした。
それは頭から読んでいく形式だからです。ただし、テクニックバイブルとして使えるようにするため、逆引き用の目次もついています。
サンプルコードが多く、練習問題もあるので、なおさらそう思います。ちなみに、本文中に問題の回答はありません。

Emacs Lispではエスケープが大量に必要な、特殊な正規表現を書く必要があるのですが、それもきちんと解説されています。
複雑な正規表現を読み書きするときに役立つと思います。

ちなみに、この本はリファレンス本ではないですし、「普通の教科書」ともちょっと違います。
普通の教科書なり解説書というのは本文中に著者の個性がそれほど現れないものです。
しかしこの本には著者の意見が大量に出てきます。
著者のEmacsの使い方に共感できる人にとっては、この上なく良い本ですが、そうでない人にとっては苦痛でしょう。
私は無味乾燥な本よりは、こういう本が好きです。使用しているエディタに違いがあるとはいえ、個人的にるびきちさんの意見に共感できる部分は少なくないですし。
「るびきちさんによるEmacs Lisp解説本」というのが正確なジャンルなのだと思います。

この本で紹介されていた、あるバッファに一時的に移動して処理ができる、with-content-bufferはVimにも欲しいですね。
Vim scriptでこれをやると非常に醜いコードになってしまうので。バッファの処理はEmacsの方が洗練されているのかな、と思いました。

実はこれを目当てで購入したのですが、eshellについての話はなかなか良かったです。
Emacs Lispをバリバリ書ける人にとって、Emacs界最強のシェルはeshellだと思っているので。Vim界最強のシェルがvimshellであるのと同じ理屈です。
私にとって、eshellの関数を他のEmacs Lispから使うという発想はなかったですね。確かに標準添付のプラグインだからこそ、こういうことができます。
vimshell(vimproc)がいつかそうなるといいのかなーと思いました。
それにしても、eshellはそろそろ誰かがメンテナを引き継ぐべきじゃないだろうかと思いました。いろいろ問題点もあるのに、更新されないのは悲しい。
eshellはリダイレクション機能が不十分ですが、「それvimshellでできるよ」と主張しておきます:-)
eshellと同じく、vimshellもVim scriptを評価する機能があります。vexe内部コマンドを使えばOKです。

deferred.elの紹介があるのも良かったですね。これは良い資料。Vim scriptにもdeferred.elは移植したいんですけど……。誰かやってくれないかな。

Emacs Lispのテストフレームワークについても解説されていました。Emacs Lispでちゃんとテストが書ける環境があるというのは良いですね。
ちなみに、Vim scriptには標準的なテストフレームワークがなく、皆がオレオレテストフレームワークを実装しているので、どれを覚えればいいのか分からず困っています。
だから私はテストフレームワークを使っていません。パッケージマネージャと同じく、このカオスな状況がどうにかなればいいな、と思います。

ちなみに、一つだけ不満点を。
anything.elの章は、Emacsテクニックバイブルと内容が被っているので、無理して入れる必要はなかったんじゃないかなと思いました。
このページを他の解説に使ったほうが良いのではないかと。今のところこれくらいですね。

総評としては、るびきちさんのEmacsの使い方を勉強したい人なら、十分満足できる本だと思います。
そもそもEmacs Lispの本自体が貴重ですしね。Emacs Lispの勉強にも使えます。
ちなみに、この本はEmacsテクニックバイブルの続編です。続・Emacsテクニックバイブルと呼んでも良いかもしれません。
前著を持っていない人は、まずそちらを購入しましょう。

0 件のコメント:

コメントを投稿