
はじめに

　xyzzyは亀井さんが1996～2005年という長い年月をかけて作られた初心者から上級者まで使えるとても便利なwindowsのエディタです。
　以前PCを始めた頃、私はmacを使っていました。今のwindowsはなくDOSの時代であった。ユーザーインターフェイスな仕様やグラフィックが扱え、デザイン的にも非常に美しいもので、洗練された画面や統一された思想や信念や遊び心などがクリエーターのセンスと才能の高さを表していた。とても魅力的でmacを使い始めたわけであるが、当時付随していたSimpleTextというエディタでは不十分で、色々試したあげく、Edit7というフリーソフトを主に使っていました。
グローバル検索ができる数少ないフリーソフトの一つで、私には非常に便利で役にたった。PCの中の膨大なファイル群の且つ膨大な情報から検索するには必須の機能だからです。

　xyzzyもこのグローバルな検索ができるフリーソフトです。しかもLispという言語を使って色々自分なりにカスタマイズできるという優れもの。
　macを使い始めた頃HyperCardを使ってHyperTalkというC言語に似た言語を使って、コンパイルすることなく色々自分仕様なスタックを作ったのを思い出し、正直「これはかなりイイ」な。。。と思いました。
　xyzzy ver0.2.2.233 に出会って以来、亀井さんには一面識もありませんが現在まで使い続けている愛用者です。
ただ、使い始めてすぐに分かることですが、それが進化途中であるせいかどうかわかりませんが、作りかけの機能や見落としているんじゃないかな。。。といった面がいくつかあり、色々自分なりにカスタマイズしてきました。

　特に編集機能で元に戻す(undo)はエディタとしては致命的でインサーションポイントが元の位置に戻らないものでした。
とりあえず提供されているライブラリの関数を使ってある程度の改善をこころみましたが、、、根本的な改善にいたらず、そうこうしているうちに ver0.2.2.234 がリリースされたので改善されているかと思いましたが同じでした。ソースがあれば見直しができるかもしれないが。。。と思いつつも。。。
　仕方ないのでLisp言語上で一から作るしかないと覚悟を決めて編集における全ての関数組み込んで、undo.lファイルを作成し、改善を重ねました。キャレットの位置の不具合だけで使わないのは本当に惜しいエディタだったためです。従って編集に関する新たな関数は全てこのundo.lの関数リストに組み込まねばなりません。

　キャレットの位置は重要で画面を見ていなくてもキーを打てばそのままドキュメントに反映されなければなりません。キーを打つ感覚やリズムは人それぞれ違いますが、長く培われたその感覚によって入力されるからです。undoした後ですぐに入力するという動作でインサーションポイントがずれていたら、入力しずらいものとなります。
　また、画面のスクロールによってキャレットが動き、選択部分が消えてしまう仕様にとまどいました。選択部分はこれからコピーやカットなどしようとする動作の一環で、これが消えてしまうのは編集機能として使いにくいので、選択部分は残したいとも思いました。

　他にも色々と補足したり、拡張したり、変更したりとしてきましたが、問題や不具合やテスト中のも多く残しています。
最初はロードやフックなどでカスタマイズしていましたが、手続きがちょっと面倒なことと、自分だけしか使わないのだから。という理由や、この一行だけ直せばいいことなのだが。。。とかが重なって直接手直した方が早い。。。というまどろっこしさから、あちこち手を加えてあります。本来はユーザーが欲しそうなところにはフックなどが用意されているのでフックを使うべきですが。。。ないところはその一行のために同じ関数をロードして上書きをするしかない。といった馬鹿なことをやっていました。馬鹿といっても、それはあくまで元のファイルを壊さないという尊重の立場のものです。しかし考えてみれば圧縮ファイルを展開すれば元のファイルはあるわけだし、いつだって元の仕様に戻れるわけで、上書きをした時点で尊重も何もありません。

　と、いつの間にか ver0.2.2.235 がリリースされソースが公開されているのを知って。。。随分後になってですが。。。んータイミングが悪いなぁ。。。あくまで私の勝手な立場からだけの思いですが、ソースを見て作り直してもみたいが。。。とも思いましたが。。。
　プログラムに限らず何でもそうですが、言うのは簡単で実際やるとなると大変です。手間暇を考えるとかなりの時間や労力が必要となりますし。。。現状そういった余裕もなく、重要な不具合は既に改善したので ver0.2.2.234 をこのまま使っていて問題ないからなぁ。私はプログラマーではないし、趣味の範囲でやっていることなので、素人の私より多くの知識ある賢明なプログラマー達にまかせた方がいいな。。。と、判断しつつ。。。

　追加や変更されたアルゴリズムは独自のものだったり、リファレンスを見たり、サイトに掲載されているものを参考にしたりと、様々です。複雑に絡み合っているので、こうだとはいいきれません。しかし多くの人達が掲載やヘルプを出しているおかげで色々な事できました。あるモノを作る労力は自分自身でとても大変な作業ですが、そういった人達にはとても感謝しています。
　そういうわけで。。。これまで私が作って使っているモノも何かしら何処かで誰かに役に立つかもしれない。と思い、ファイルをダウンロードできるようにしました。crayonzen仕様のxyzzyです。現状のままかどうか分かりませんが、一応、再配布自由ということなので、本体を含め今私が使用中の全てのファイルをそのまま入れます。興味ある仕様や関数があれば参考にしてもらったり、なんだこんなものかと思えば捨てて構わないのです。

おわりに

本体のhtmlフォルダにあるxyzzyのreadmeはお読み下さい。
アプリケーション本体 xyzzy version 0.2.2.234 はそのままです。
本ソフトはxyzzy仕様によるLisp言語によってカスタマイズされた xyzzy です。
（申し訳ありませんが作るだけでも大変な作業を擁するヘルプはありません）

　xyzzy version 0.2.2.234
　カスタマイズされたLispファイル群
　　＋
　readme.txt（このファイル）
　追加変更ファイル等.txt
　■reference2006-03-29.txt
　を含む。

使用は誰でも自由に、再配布も自由です。また、あらゆる全ての責任は使用者の自己責任です。
crayonzen [2010-05-17]01:44:54(+0900)

rev.16 [2026-03-11]14:49:02(+0900)
xyzzy-0.2.2.234-rev.16_crayonzen.zip
xyzzy-0.2.2.234-rev.16_crayonzen.7z

rev.15 [2024-12-26]16:51:34(+0900)
xyzzy-0.2.2.234-rev.15_crayonzen.zip
xyzzy-0.2.2.234-rev.15_crayonzen.7z

rev.14 [2023-04-12]09:34:24(+0900)
xyzzy-0.2.2.234-rev.14_crayonzen.zip
xyzzy-0.2.2.234-rev.14_crayonzen.7z

rev.13 [2023-03-18]07:25:56(+0900)
xyzzy-0.2.2.234-rev.13_crayonzen.zip
xyzzy-0.2.2.234-rev.13_crayonzen.7z

rev.12 [2023-03-16]14:42:48(+0900)
xyzzy-0.2.2.234-rev.12_crayonzen.zip
xyzzy-0.2.2.234-rev.12_crayonzen.7z

rev.11 [2023-01-30]11:42:03(+0900)
xyzzy-0.2.2.234-rev.11_crayonzen.zip
xyzzy-0.2.2.234-rev.11_crayonzen.7z

rev.10 [2022-02-23]06:10:49(+0900)
xyzzy-0.2.2.234-rev.10_crayonzen.zip
xyzzy-0.2.2.234-rev.10_crayonzen.7z

rev.09 [2022-02-21]03:09:05(+0900)
xyzzy-0.2.2.234-rev.09_crayonzen.zip
xyzzy-0.2.2.234-rev.09_crayonzen.7z

rev.08 [2022-02-09]06:34:41(+0900)
xyzzy-0.2.2.234-rev.08_crayonzen.zip
xyzzy-0.2.2.234-rev.08_crayonzen.7z

rev.07 [2022-02-02]09:30:35(+0900)
xyzzy-0.2.2.234-rev.07_crayonzen.zip
xyzzy-0.2.2.234-rev.07_crayonzen.7z

rev.06 [2020-08-22]14:08:07(+0900)
xyzzy-0.2.2.234-rev.06_crayonzen.zip
xyzzy-0.2.2.234-rev.06_crayonzen.7z

rev.05 [2020-06-19]10:41:47(+0900)
xyzzy-0.2.2.234-rev.05_crayonzen.zip
xyzzy-0.2.2.234-rev.05_crayonzen.7z

rev.04 [2020-06-05]21:52:03(+0900)
xyzzy-0.2.2.234-rev.04_crayonzen.zip
xyzzy-0.2.2.234-rev.04_crayonzen.7z

rev.03 [2020-02-17]16:55:30(+0900)
xyzzy-0.2.2.234-rev.03_crayonzen.zip
xyzzy-0.2.2.234-rev.03_crayonzen.7z

rev.02 [2019-07-07]13:59:24(+0900)
xyzzy-0.2.2.234-rev.02_crayonzen.zip
xyzzy-0.2.2.234-rev.02_crayonzen.7z

rev.01 [2016-03-14]10:35:52(+0900)
xyzzy-0.2.2.234-rev.01_crayonzen.lzh
xyzzy-0.2.2.234-rev.01_crayonzen.zip
