コンピューターの歩みはテキストエディターのそれと同じです。テキストファイルの作成や編集に欠かせないテキストエディターは、現行のOSであるWindows 8のメモ帳やOS XのTextEditのように標準搭載されていることからも、その重要性を理解できるでしょう。今回の「世界のテキストエディターから」は、Windows 1.0時代から最新のWindows 8にも搭載されている「メモ帳」を紹介します。
Windows 1.0時代から備わる「メモ帳」
私事ではありますが、「世界のテキストエディターから」の執筆を初めて既に一年以上経ちました。数多くのテキストエディターを紹介してきましたが、アプリケーションに対するニーズの根底には、"機能性"や"個人の好み"が大きく関与します。
そこで注目したいのが、Windows OSに標準搭載される「メモ帳」。ご存じのとおり、必要最小限の機能を備えるテキストエディターですが、その軽快な動作を評価する方は少なくありません。今回は初心に返る意味を込めてメモ帳を取り上げることにします。
改めて述べるまでもなくメモ帳は、Windows OSの標準テキストエディターですが、その歴史は古く、1985年にリリースされたWindows 1.0までさかのぼります。当時はMS-DOSに付属するスクリーンエディター「MS-DOS Editor」をベースに開発され、機能的に充実しているとは言いがたいものでした。
しかし、この時点で文字列の検索機能や、折り返し機能、日時の挿入機能などを備えています。この日時挿入機能はWindows 8のメモ帳にも引き継がれていますが、確かにちょっとしたメモ書きをテキストファイルとして残す場面では、便利な機能と言えるでしょう。また、後述するイースターエッグにも利用されていました(図01~02)。
Windows 2.xが搭載したメモ帳は、機能的にもWindows 1.xのメモ帳と同じでしたが、若干の変更が加わったのはWindows 3.xに搭載されたバージョンからです。正しくはWindows 3.0の時点で、印刷調整を行うために「Page Setup(ページレイアウトの設定:後にページ設定へ改称)」という項目が加わりました。同ダイアログからは、ヘッダーやフッターを記号で指定し、余白調整を行うなど現在のアプリケーションでは当たり前の機能が1990年の時点で搭載されたのです。特定の記号を組み合わせることで、挿入文字列やヘッダー&フッターを挿入するというスタイルは、当時のOfficeスイートでも採用していました(図03~06)。
そしてWindows 95のメモ帳に至ります。この時点でメモ帳というアプリケーションの基礎はひとまず完成しましたが、ソフトウェアには付き物であるバグがいくつか報告されるようになりました。当時を振り返ると思い出すのが、ページレイアウトの設定における問題点。
同設定項目は前述のとおり印刷時のレイアウト設定を行うものですが、入力した余白値などが保存されなかったのです。そのため、レジストリエディターが活用され始めたWindows 95では、HKEY_CURRENT_USER\Software\Microsoft\NotepadキーにDWORD値「fSavePageSettings」を編集するテクニックが注目されました。
また、この頃からファイルサイズの制限も目立つようになります。これ以前は大きなテキストファイルを扱う場面は多くありませんでしたが、MS-DOSの時代も終えたWindows 9xの時代になりますと、64キロバイト以上のテキストファイルが登場する場面も増えました。
しかし、この時点のメモ帳には64キロバイト以上のテキストファイルを開くことができず、関連付けからメモ帳を起動すると「ファイルが大きすぎて、メモ帳では開けません。ワードパッドで開きますか?」というメッセージが表示され、メモ帳の限界を認識するようになったのです。なお、この制限はWindows 9x時代までであり、Windows 2000以降のメモ帳では64キロバイト超のテキストファイルにも対応しました(図07~09)。
図08 HKEY_CURRENT_USER\Software\Microsoft\NotepadキーにDWORD値「fSavePageSettings」を作成し、データ値を「1」に変更することで、ページレイアウトの設定が保存可能になりました |
メモ帳はシンプルなアプリケーションだけに、プログラマーが本来の目的とは異なるメッセージや機能を密かに仕込むイースターエッグは多くありませんが、もっとも有名なのは、前述した日時を自動挿入する機能。テキストファイルの先頭行に「.LOG」と記述しておきますと、同ファイルをメモ帳で開く際、ファイルの末尾に日時を自動挿入する機能が用意されていました。確かに便利な機能でしたが、筆者は後述する理由で使用した記憶はほとんどありません(図10)。