Humanity

Edit the world by your favorite way

15 理想のツールを探す

だれてきたなーと感じてたけど、とうとうこの章がきた。

ここまで読みすすめてきた方は、自分にとって悩みの種になっている問題が
どのようなものか、すでにわかっているはずです。
また、自動化を進めたいとも思っていることでしょう。
では、問題の解決にはどんなツールを使うべきでしょうか。
あなたが最初に使用することになるのは、
おそらくシンプルなテキストエディタでしょう。
ここではまず、開発者にとって最も重要な武器である、テキストエディタ*1の話から始めることにします。

エディタって「テキストをエディットするもの」なので、まぁリーダーでもあるわけですよ。
なので(ファイルで表せる)全てのものに対する究極の汎用化されたツールであるとも言えるわけで。

ソフトウェア開発の作業では、いまだに多くの時間をプレーンテイストと共に過ごします。
たとえウィザードや開発を効率化する様々なツールをいくつ使ったとしても、
コーディング作業のほとんどは今もプレーンテイストで行うのです。
また、保持する情報はできる限りプレーンテキストの形式にしておくべき、ということも言えます。

もちろんファイルはバイナリじゃなく、プレーンテキストで保存するべきですよね。
これは「UNIXという考え方」にもある通り。

まぁバイナリであってもエディタから読んだり編集したりできるのは自然だと思いますけどね。bviとかあるし。
でもどうせなら同じ環境から使いたい。
「どうせなら」は投げ遣りな感情から来るものじゃなく、切実にそう思っています。

まぁその点VimはShougoさんがShougo/vinarise.vim · GitHubという
vimバイナリエディタにするプラグインを作成中なので、期待ですね!
自分はあんまり需要ないけど!

15.1.1 Neal Fordの「理想のエディタ」に必要な機能のリスト

この項は「vimなら」という言葉が省略されていると考えてください。

マクロレコーダ

もちろん使える。:help q

コマンドラインから起動可能

もちろんそう。

正規表現による検索、置換ができる

もちろん。:help :s

データの追加が可能なクリップボード

もろちん。間違えたもちろん。
:help registers

ちなみに
:help register
だとウガンダに寄付してくださいってのが出るよ!
自分もいつか寄付したい。まだしてない。Paypalがめんd(ry

あとレジスタはqコマンドのマクロにも使われる。

マルチレジスタ

はい。いくつもレジスタ持ってます。
そのおかげでいろんな用途に使えます。

ちなみにここまでで言ってなかったレジスタの用途としては
:help m
かなぁ。
あとyiwとかでヤンクした時も当然使うし...

あとプラグインで単なる変数としても使える。
まぁ普通の変数使えばいいけど。

クロスプラットフォーム

Plan 9でもうごくよ!よ!

15.2 理想のエディタの候補

ここで挙げられたエディタをリストにしてみる。

ぼくはここでvimがviの説明と一緒くたにされてることにふかいかなしみとぜつぼうをかんじました(イっちゃった目をしながら)。
viだとtext-objectがないのでyiwとかできなくてbywとかするも
すでに単語の先頭にいるときはその前の単語にいっちゃってあびゃーってなるんだぜ。
viで十分って言う人を尊敬すらします。本気で。


はいこれでエディタの章は終わりです。え?

15.3 仕事に合わせてツールを選択する

適当なスクリプト書いて、それがけっこうプロジェクトの重要な位置を占めるようになっちゃったりするから
最初っからPerlとかRubyとかPythonとか「本物の」言語で書いたほうがいいよ、という話。

15.4

高いお金払わずに済んだ、OSS万歳、という話。

*1:誤植発見。「テキストエティタ」になってる。最後に「初版第2刷発行」って書いてある