PR
日経ソフトウエア2008年6月号にて掲載した「特選フリーソフト170」をお届けします。Partごとにテーマを決めて,そのテーマに沿ったフリーソフトを最後のページでまとめて掲載しています。2008年6月号の付録DVD-ROMには一部のフリーソフトを収録したため,それに関する表記がありますが,ご容赦ください。また,「お役立ちフリーソフト一覧」でもフリーソフトを紹介しています。
※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。

Part1~7では,統合開発環境や各種フレームワーク/ライブラリ,データベース・ツールといった,プログラミングに直接役立つソフトを紹介してきました。最後のPart8では,プログラミングを側面から支援して,生産性を高めるツール類を紹介していきます。プログラミング以外の局面でももちろん役立ちます!

 プログラムを書くときには,統合開発環境(IDE:Integrated Development Environment)を使っている方が多いのではないでしょうか。最近の統合開発環境は,プログラムを書いてボタン一つで実行できるだけでなく,コード入力時にクラス名,メソッド名などを補完してくれたり,コードの体裁を整えてくれたりと,至れり尽くせりの機能を備えています。この記事でも,Eclipse,Aptana Studio,Turbo C++ ExplorerといったIDEを紹介してきました。

 しかし,プログラムを作るすべての局面にIDEが適しているとは限りません。ちょっとしたプログラムを書くときや,アプリケーションの設定ファイルを編集するときなどは,起動に時間がかかるIDEよりも,軽快に動作するテキスト・エディタのほうが便利なことがよくあります。

文章もプログラムもテキスト・エディタで書く

 テキスト・エディタの関して,まずお薦めしたいのが図1の「サクラエディタ」です。コードの色分け表示や,各種文字コードへの対応機能を持つだけでなく,正規表現を利用した文字列操作や,マクロ言語を使った機能拡張まで可能です。マクロ言語は独自のものだけでなく,VBScriptやRubyといった,メジャーなプログラミング言語を使うことも可能です。

図1●サクラエディタでPerlプログラムを編集しているところ
図1●サクラエディタでPerlプログラムを編集しているところ
[画像のクリックで拡大表示]

 「OEdit」もテキスト・エディタの一つです。サクラエディタほど多機能ではありませんが,軽快に動作し,コードの色分け表示や各種文字コードへの対応など,基本的な機能をしっかり備えています。

 UNIXで広まったテキスト・エディタが「Emacs」と「vi」です。その実装として,ここでは「GNU Emacs」と「Vim」を取り上げます。UNIX/Linux/FreeBSDなどをこれから使ってみたいと考えているなら,Windows上でこうしたエディタを使って練習しておくのもよいでしょう。

 どちらのエディタもユーザーが独自に拡張できる余地が大きい点が特徴です。GNU Emacsは「Emacs Lisp」というLisp言語の一種で拡張機能を記述できます。また,「M-x compile」(MetaまたはAltキーを押しながらxキーを押し,compileと入力する)というコマンドで編集中のプログラムをコンパイルするといった,プログラミング向けの機能も備えています。

 viは,起動してキー入力をしてもそれがそのまま画面上に入力されない,という少し独特なテキスト・エディタです。入力をするには「a」キーを押して追加モードに入る,「i」キーを押して挿入モードに入るといった操作をしなければなりません。それでも,この操作性には合理性があり,「やっぱりviだよね」と思う人も少なからず存在します。

 Vimはviを大きく拡張したエディタです。独自のスクリプト言語で機能を拡張でき,Vimの公式Webサイトでは,世界各地のユーザーが開発したスクリプトをダウンロードできます。

 テキスト・エディタの少し外に位置するツールも紹介しておきましょう。「Binary Editor Bz」はバイナリ・エディタです。テキスト・エディタは文字と若干の制御コードだけを扱うソフトウエアなので,文字以外の要素が含まれたファイルは正しく閲覧/編集できません。Bzはバイナリ・エディタなので,どのような要素が含まれていても扱えます。テキスト・エディタでうまく開けない場合などのために,ぜひ手元に置いておきたいソフトです。

 「WinMerge」は二つのテキスト・ファイル間の差異を調べて指摘してくれるソフトです。昨日書いた文書(コード含む)と今日書いた文書の違いが分からなくなることは,結構ありがちです。バックアップを適度に作成して,必要な時はWinMergeなどで調べましょう。