2011年12月15日木曜日

二画面ファイラーはなぜ便利なのか


syohexさんのTweet(リンク)を見て、二画面ファイラーの利点について考えてみました。
二画面ファイラーには次のような利点があります。

1:同じディレクトリに対して移動・コピーするのが楽
2:コピー元・コピー先のディレクトリの中身が分かる

個人的には2:の利点が大きいと思います。というのは、シェルや一画面ファイラーで
コピー・移動するときは書き込むディレクトリの中身が分からないのでコピー先のディレクトリをミスするかもしれません。
しかし、二画面ファイラーではまずミスをすることはありません。
書き込みの完了も、移動先が更新されているのが目で見て分かります。
コピー先のディレクトリが表示される安心感は、一度使ってみないと分からないでしょう。
ちなみに、私は一画面でコピーするときはいつもドキドキします。

GUIのファイラー(Explorer等)でファイルをコピーするときのことを考えます。
一つのファイラーでコピーするファイルを選択し、もう一つのファイラーにドラッグドロップするのが二画面ファイラーなのです。
とはいえ、いちいちコピー先に移動するのは面倒であることも事実です。
そのため、二画面ファイラーでは自分の窓を他方の窓に合わせたり、他方の窓を自分の窓に合わせたりすることができます。
コピー元とコピー先が近い場合には簡略化できます。

さらに、コピー先のディレクトリ名に日本語が含まれる場合、シェルや一画面ファイラーではコピー先の指定が大変です。
二画面ファイラーではそういうときでも楽にディレクトリを指定することができます。

Firefox Hacks Rebootedレビュー


ようやく一通り読み終えました。この本がもっと売れてほしいと考えているため、簡単なレビューをします。

日本からこういうマニアックな(失礼)、本が出るのは非常に喜ばしいです。
外国でもなかなか出ない種類の本であるだけに、日本はまだまだ捨てたものではないな、と思わせてくれます。
この本はFirefoxのモダンな拡張機能の作り方を解説した本なので、Firefoxの一般ユーザが読むには難解です。
コード量も多いので、読み進めていくにはJavaScriptの知識が必要になるでしょう。
ただし、最近のFirefoxで変更された機能やHTML5などのWeb標準技術についても解説されているため、Web開発者なら読む価値があると思います。一見真面目な本のようで、所々挿入されているネタには吹きました。
きゅ○べぇネタや、台湾マイクロソフトの始まりすぎているキャラクターなど……。
JSDeferedには40ページ以上を割いていて、かなり力を入れて解説していると感じました。
JavaScriptの並列処理をマスターしたい人は、ここだけでも読む価値はありそうです。
実を言うと自分はKeysnailとVimperatorの解説を目当てで、この本を購入しました。
ページ数としてはそんなに多くなかったのですが、概要を押さえることはできました。

総評:
思っていたとおり、なかなかレベルの高い本でした。
でも、Firefoxのことがよく分かったので買ってよかったと思います。
自分は現在Firefoxを使っていないのですが、面白そうな機能があることが分かったため、今度試しに使ってみてもよいかなと思っています。

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テクニックバイブルと呼んでも良いかもしれません。
前著を持っていない人は、まずそちらを購入しましょう。

2011年12月3日土曜日

Vimと過ごすイチャラブクリスマス ~そして伝説へ~


Vim Advent Calendar 3日目:「Vimと過ごすイチャラブクリスマス ~そして伝説へ~」

Vim Advent Calendarと聞いて、何も考えずにエントリーしてしまったShougoです。こんにちは。
特に反省していない。早くも盛り上がりを見せているVim Advent Calendarですが、
私もそれらに負けない濃いネタを提供したいと考えています。

注意:このエントリには過激な表現が多数含まれています。
ネタをネタと分かる大人な人間だけが、このエントリを理解できることでしょう。

もう12月となりクリスマスが近付いてきましたが、Vimmerの皆さんはいかがお過ごしでしょうか。
クリスマスの予定はもう決まりましたか。まだ決まっていない?
ならば、今年の冬はVimと一緒のクリスマスというのはどうでしょうか。
クリスマスは普段はできないVimとの愛を深める良い機会です。
幸い、Vimとのデートにはお金がかかりません。PCからVimを起動するだけでよいのです。
ノートPCさえあれば、どこでもVimとイチャイチャし放題です。
筆者オススメのデートコースは以下の通りです。

 1:Vimの設定を見直してみる

長い間Vimを使用していると、不要になった設定が貯まってくることでしょう。
大晦日にやっても良いのですが、大晦日はVimとの新居(PC)の掃除で忙しいはず。
この機会に、Vimの設定を見直しましょう。汚ない設定では、Vimから嫌われてしまいますよ。
デート前には身だしなみを整えるのも大事ですよね。
おそらく、皆さんのVimの設定には、他の人からのコピペが多数含まれているはず。
それは良くないですね。コピペは「だめゼッタイ!」です。
訳が分かる設定だけを導入しましょう。
分からないコマンドや分からない設定については、まず:helpを参照しましょう。
Vimの知識を増やすチャンスです。
ちなみに:helpを参照するときは、一覧を表示できるunite-helpを用いるのがオススメです。

2:Vimのプラグインを見直してみる

同様に、不要になったプラグインも見直しましょう。
プラグインの管理には、pathogen.vimやvundle.vim, neobundle.vimといった
プラグイン管理プラグインを使用すると楽です。
この機会に導入しておくと良いでしょう。
筆者のオススメは、neobundle.vimを使用することです。
vundle.vimがもつほとんどの機能に加え、unite.vimと連携してプラグインをインストールしたり削除できます。
neobundle.vimのおかげで彼女(Vim)との仲が深まりました!」など嬉しい報告が続々届いています(妄想)。

3:Vimと過ごす時間を最大化する

Vimとラブラブになるためには、できるだけVimと過ごす時間を取らなければいけません。
仕事でだけVimと過ごすというのは勿体無いです。
我々は仕事でも趣味でもVimと一緒に過ごすことができる幸運に恵まれているのですから。
いつでもVimと過ごすために、vimfilerやvimshellをインストールしましょう。
Explorerやzsh, screenといった軟弱なツールは窓からポイしてください。
さらに、unite.vimやneocomplcacheをインストールすることで、より濃密なVimとの時間を堪能することができます。

これらのプラグインはVim pluginで拡張することができ、Vim scriptで設定を行います。
Vimを愛する人達には無くてはならないものです。
Vimに慣れていない人には使いこなすのは難しいですが、
Vimへの愛があれば、それくらいの障害は乗り越えられることでしょう。
えっ、Vim scriptが分からない? それはなんてこと。

Vim scriptはVimとのコミュニケーションを図るために無くてはならないスキルです。
英語なんて学んでいる暇があったらVim scriptを勉強するべき。
だいたいなぜVim scriptプログラマの求人やVim scriptを書くだけのお仕事はないんだ。
私はC言語ではなくVim scriptで全てのコードが書きたい。
Vim scriptを書いていると心が落ちつく。Vim script最高!
おっと、イカンイカン。つい本音が出てしまいました。

4:VimのプラグインをDIYする

クリスマスこそ、Vim scriptを勉強してVimと一緒にプラグインを作成しましょう。
愛するVimとの共同作業です。
最初から難しい課題に取り組むのは大変なので、最初はプラグインの改造をしたり、
ftpluginやちょっとしたプラグインを作成すると良いでしょう。
.vimrcに書いた設定を汎用的にしてプラグイン化するのも良い方法です。
例えばthincaさんはそういう方法でプラグイン化するのをよくやっているようです。
最近では、unite.vimのsourceを作成するのが流行しているため、それをやってみるという手があります。
ちなみに、neocomplcacheを使うと簡単にVim scriptを書くことができます。
neocomplcacheはVim scriptを書くプログラマのために最適化されているからです。
他の言語にも対応していますが、それはオマケです。

5:Vimコミュニティに参加する

Vimとの仲がかなり深まったと思ったあなた、しかしそのうち関係がマンネリ化してしまうからもしれません。
それを防ぐために、Vimコミュニティに参加してみましょう。
いわゆる、町内会や保護者会みたいなものだと思ってください。
周囲にVimmerがいなくて寂しい思いをしているそこのアナタ、ぜひとも参加するべきです。
他人がどのようにVimと良好な関係を続けているかを観察することで、あなたのVimにとても良い影響を与えるはずです。
vim-users.jpやvim-jpでは、あなたの参加をいつでもお待ちしています。
もちろん、Vimに貢献したいというメンバーも随時募集中です。
私はvim-users.jpに育てられてVim scriptを書くようになったので、もっと仲間が増えるといいなと思っています。

6:おわりに

Vimとのデートを楽しんだ後は、Vimへの愛を囁きながら眠りに付きましょう。
心配しなくても、Vimはいつもあなたと一緒に居ます。Vimとは心でも繋っているのです。
大事なことは、クリスマス終了後もVimとの愛を深めていくことです。
クリスマスは切っ掛けにすぎません。
これを実践して、皆さんがよりVimを愛するようになれば幸いです。
もちろん、Vimと一緒に新年を向かえるのも非常に良い心掛けではないかと思います。

えっ、この記事は単に自分のプラグインの宣伝をしているだけじゃないかって?
私は純粋にVimとの過ごし方を解説しているだけだというのに、何て失礼な!