VZ Editor

VZ Editor（ヴイゼットエディタ、あるいはヴイジーエディタ）は、プログラマの兵藤嘉彦（ひょうどう よしひこ、c.mos）が開発したMS-DOS用テキストエディタである。1987年にPCワールド・ジャパンからPC-9800シリーズ用にEZ Editor (EZ9801) として発売され、1989年にこれを改良したバージョンがビレッジセンターからVZ Editorとして発売された。軽快な動作、スムース・スクロール、ファイルマネージャ機能、コマンドライン拡張（TSR）、高度なカスタマイズ、マクロ自動処理を特徴とする。1992年末の時点で累計16.5万本（うちDOS/V版1.5万本）が販売された。
経緯.
1984年、兵藤は名古屋工業大学を卒業した後に日立製作所へ入社し、同社のパソコン『ベーシックマスター S1』向けのテキストエディタを開発した。1985年、兵藤はPC-9801U2を購入し、そこでプログラム開発を行うためにテキストエディタが必要だったため、自ら開発した。日経MIXのアセンブラ会議の遠藤啓治らによるアセンブリ言語についての助言等を参考にしており 必要なノウハウを蓄えていった。日立がパソコンの開発部隊を撤収した後、兵藤は日立を退いて『獣神ローガス』などコンピュータゲームの開発を請けていた。1987年、兵藤は自らが開発したテキストエディタを『EZ Editor』としてリリースし、『パソコンワールド』などの雑誌を出版していたPCワールド・ジャパンから発売された。1989年に出版社の経営が行き詰まると、兵藤はビレッジセンターに商談を持ちかけた。
VZ Editorの発売当時、ビレッジセンターは、アメリカのフリーソフトウェア、シェアウェアの店を営業していた。英語ソフトウェアの日本の機種への移植製品や、GNUプロジェクトなどのフリーソフトウェア関連製品の販売をしていた。そう言った経緯があり、開発者である兵藤の名が前面に出るといったユニークな販売スタイルとなった。一時期、兵藤がビレッジセンターでユーザサポートの電話に出たり、メールしたりすることもあった。
当時のMS-DOS環境のテキストエディタは、フリーウェアやシェアウェアにはPSEのような簡易なもの以外にはほとんど存在していなかった。市販品であるMIFES（メガソフト）やFINALは数万円の価格設定であった。その中でVZ Editorは9800円という安価で発売した。1990年代前半はMIFESと、MS-DOS用テキストエディタの市場を二分、数多くの賞を受賞し、MS-DOS時代のパソコン文化史に一時代を築いた。
1992年頃のVer.1.5の対応機種はPC-9801シリーズとその互換機用に東芝のJ-3100シリーズ、AXマシン用が添付、そのほかにDOS/Vマシン、日本IBMのPS/55シリーズ用を別途用意していた。1994年のVer.1.6は、98フォーマット(1.25MB)の5インチおよび3.5インチとIBMフォーマット(1.44MB)の3.5インチの3枚のフロッピーディスクが同梱され、1つで全プラットフォームに対応するパッケージとされた。
普及.
出版社は、パソコン雑誌でVZ Editor使いこなしの記事を連載し、解説書を多数発行した。書籍『VZ倶楽部』には、開発者のほか、マニュアル作成者の西田雅昭、マクロ作成者の大野元久、社長の中村満、SF作家高千穂遥、プログラマ中村正三郎、PC-VANのN5200ユーザネットのSIGオペをしていてN5200への移植をした小川清はじめ、多くの文化人が執筆している。内容は随筆だが、VZエディタの開発の経緯、VZエディタの特徴などを記載している記事もある。ただし、兵藤、大野、中村満は複数のペンネームで執筆しているため、誰がどれを書いているかを当てるのがマニアの間で興味の的となった。
パソコン通信 の会議室（日経MIXのv.c.会議およびNIFTY-ServeのFGALPK）でのユーザからの意見を積極的に取り入れ、様々な改良を加えた。利用者が開発したマクロプログラムをパソコン通信上で公開するなど、ユーザによって発展したソフトでもあった。パソコン通信では、高千穂などの文筆業の支持を得て、これまでプログラマの道具と思われていたテキストエディタが、文章作成の道具として認知を受けることになった。さらに、製品にはソースコードが付属していたので、ユーザアセンブルによるソフトウェアの小規模化、移植、改造版も存在していた。OPTASMというアセンブラでアセンブルし、同梱のリンカでリンクすると、数バイト小さくなる版があった。そのため、アセンブラプログラマは、好んでOPTASM を購入した。
関連ソフトとして、石田暢彦(wing)によりVWX、兵藤によりZCOPYなども開発された。
多くの当時のPCへの移植がある。それ以外にも富士通FMRシリーズおよびFM TOWNSシリーズ、PC-88VAシリーズや、文豪やOASYSなどのワープロ専用機、N5200などのオフコンへの移植版パッチもパソコン通信で配布されていた。
このような好評にもかかわらず、1993年に兵藤はVer.2.0やWindows版の開発予定はないと公言した。プログラムサイズが大きくなると、その分マクロバッファが小さくなり、既存のマクロに動かないものが出てくるため、VZ Editorに新しい機能を追加することは困難であった。また、兵藤は「人は気軽にVZのWindows版が欲しいというが、私にはVZをWindowsに持ち込む気持ちはさらさらない。Windowsに移行するには、いったん過去のしがらみを捨て去るべきだと思っている。VZはあくまでDOS用のエディタである。」と述べた。1994年1月、VZ Editorの最後のバージョンであるVer.1.6がリリースされた。兵藤はインタビューで「すでに私にとってはVZは過去の仕事である。...これから新たなソフトを作るとなると、必然的にWindowsとC++を学習しなくてはならない。今の私にとてもそれだけのパワーはない。」と述べた。
同じくビレッジセンターから発売されたWindows用テキストエディタ Wz Editorが事実上の後継ソフトウェアであるが、Wz Editorは兵藤の作ではない。
機能・性能.
小さな設計で、more (UNIX)やlessコマンドのような軽快な動作を保ちながら、優れた操作性と強力なマクロ機能を持つことで人気を呼んだ。これは本体の機能は少なめとして、必要な機能はユーザーが任意にマクロで実装すると言うコンセプトにもよる。マクロ機能は強力で、キーボードマクロを編集してマクロとして利用することができた。マクロはその画面上で簡単なアクションゲームを動作させ得るほどであり、同梱のマクロでは、ゲームのテトリスが動く事が、プログラマの賞賛の的となった。MIFES互換マクロも存在した。マクロは記号の羅列なため難解で、その制作者は一部に限られ、彼らは時にマクロ師と呼んで崇められた。ソフトに同梱されているマクロファイルのいくつかは、パソコン通信のユーザが開発したものである。また、grepによる検索や、ファイル管理機能など後のテキストエディタで一般化した機能を先取りしたことも特徴である。
常駐モード.
VZ Editorの大きな特徴のひとつは、常駐モードである。常駐させた状態では、MS-DOSのコマンドラインからEscキーを押すだけでVZ Editorを起動することができる。まだハードディスクドライブが高価でフロッピーディスクのみでの運用が主流だった当時、エディタ用のディスクを抜いた状態で高速に起動できるというだけでも利点であった。ちなみに常駐に要するメモリサイズは110KB、EMSを使用するなどした場合は55KB程度、パフォーマンスを犠牲にした場合は2.5KB弱程度である。
このVZ Editorの常駐モードは単にメモリ上で起動するだけではなく、コンソールの入出力をフックするという機能を持っている。この機能により、スクロールして画面から消え去った情報をバックスクロールで確認できることに加え、出力のうち必要な部分だけを後から選んでファイルに貼り付けることもできる。また入力のフックを利用して、入力ヒストリ機能を実現している。
カスタマイズ.
カスタマイズ機能も充実しており、設定ファイル(defファイル)を編集することで、画面表示のほか、メニューやほとんどのキー設定を変更でき、また後述する強力なマクロ機能で独自の機能拡張にも対応していた。また、2ストロークキーにも対応しており、標準ではこのキーはQとKに割り振られている。
マクロ.
マクロ機能は当時としては強力なものであり、シューティングゲームなどの作成も可能であった。また、キーボードマクロ機能も持っており、これをファイルに保存して通常のプログラマブルマクロとして恒常的に使用することもできた。
マクロは、機械語のように文字数の非常に少ない構成となっており、可読性に著しい問題が有った。一例として、文字列を画面下に表示するコマンドは"&m("strings")"であり、カーソルをファイル終端に移動させるには"#_ #>"と言った塩梅であった。
しかし、VZ Editorの特徴の一つである豊富な短縮キーをほぼ全て記憶していたヘビーユーザにとっては、短縮キーとマクロが一対一に対応している機能が多かったため、マクロの読み書きが容易であった。例としては、リターンの短縮キー Ctrl+M のマクロは #m。↓の短縮キー ctrl+X のマクロは #x など。マクロの確認は、キーボードマクロをファイルに書き出すことにより可能である。
受賞歴.
VZ Editorはパソコン雑誌出版社から以下の賞を受賞している。