sky_2414.jpg
■ HOME

■for xyzzy

<下記はダウンロードファイルに同梱されているreadme.txtと同じ内容です>
<簡易な機能説明>

はじめに

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.14 [2023-04-12]09:34:24(+0900)
rev.13 [2023-03-18]07:25:56(+0900)
rev.12 [2023-03-16]14:42:48(+0900)
rev.11 [2023-01-30]11:42:03(+0900)
rev.10 [2022-02-23]06:10:49(+0900)
rev.09 [2022-02-21]03:09:05(+0900)
rev.08 [2022-02-09]06:34:41(+0900)
rev.07 [2022-02-02]09:30:35(+0900)
rev.06 [2020-08-22]14:08:07(+0900)
rev.05 [2020-06-19]10:55:08(+0900)
rev.04 [2020-06-05]21:52:03(+0900)
rev.03 [2020-02-17]16:55:30(+0900)
rev.02 [2019-07-07]13:59:24(+0900)
rev.01 [2016-03-14]10:35:52(+0900)

Download ダウンロード

▼xyzzy-0.2.2.234-rev.14_crayonzen.zip
▼xyzzy-0.2.2.234-rev.14_crayonzen.7z

圧縮解凍ツール 7-zip のダウンロードはこちらから https://www.7-zip.org/


moon_0788.jpg

mend-encoding.l で指定した文字コードでファイルを開き直す
xyz_mend_enc.jpg

マークしてマークファイルを保存 
xyz_mark_cut.jpg


亀井さん「○○やる気のないぺぇ じ 」xyzzyは http://www.jsdlab.co.jp/~kamei/ (現在リンク切 れ?2018-12-27)
hieさん「hie no page」は http://hie.s64.xrea.com/

■ パスの設定
Windows2000やXP等のNT系において「.xyzzy」 のファイル上のプログラムを動作させるには
「usr」フォルダの「ユーザー名」フォルダの「xyzzy.ini」ファイルにxyzzyのホームディレクトリへのパスを指定する必要がある場合があります。
最初に起動した時に作成されるので、メモ帳などで開いて書き足します。

例:
[init]
homeDir="D:\xyzzy"

また「システム環境変数」を設定します。「マイ コンピュータ」の「システムのプロパティ」にてタブ「詳細設定」にある「環境変数」で「xxのユーザー環境変数」に「新規」に変数名と変数値のパスを追加します。

例:新しいユーザー変数
変数名(N): homeDir
変数値(V): D:\xyzzy

■拡張子 .l (lispファイル)のコンパイルの仕方
コンパイルするファイルを開いておく
m-x (alt と x キー の同時押し)
byte-compile-file (文字入力)
enterキー
[ファイル名パス指定] (文字入力)
(コンパイルするファイルを開いておくと自動的にディレクトリの階層パスが入るので、あとはファイル名を入れる)
enterキー (拡張子.lcのファイルが作られる)

ダンプファイル(xyzzy.w98やxyzzy.w2やxyzzy.wxp…など)を削除してxyzzyを再起動。


■xyzzyの編集メニューに「モード選択」を追加する
hieさんのhttp://hie.s64.xrea.com/xyzzy/note/major_mode.html
の「モード毎の設定」のラストにある「モード選択メニュー」を使う。
とても便利で割り当てたショートカットキーf3からそのまま使ってかもまわない。

編集メニューに追加するにはメニュー用のフックを作るか、lispフォルダにあるapp-menu.lのファイルを直接書き換える。
書き換えた場合、app-menu.lのlispファイルをコンパイルし、
ダンプファイル(xyzzy.w98やxyzzy.w2k…などosによって違う)を削除し(別名で待避でもいい)、
xyzzyを再起動する。

カスタマイズされた編集メニュー
select-mode.jpg

lisp言語というのは便利で自分なりに簡単に色々とカスタマイズできます。

カスタマイズとキー操作のよもやま話
昔macにhypercardというソフトがありましたが、hypertalkeとapplescriptを使って(c言語の簡易版みたいな)色々な カードを作成したり、機能を追加したりして自分なりにカスタマイズして使いやすくできるものがありました。プログラムの言語というのは色々あります が、仕様は 作り手によって色々変わってきます。
どれくらい昔というと、インターネットがまだない頃でniftyでの国内通信のみの古き時代の話で恐縮ですが、私がパソコンの使い始めたのがマック だった事もあり、使いやすいインターフェイス、直感的な操作ができるものが好きです。
xyzzyのキー設定でwindows仕様のキー設定にする時gates.lファイルを使います。ウィンドウズのビル・ゲイツbillgatesの名 前を取っているのでしょうが、新規、保存、カット&ペーストなど、コマンドなどのほとんど主なキー操作はマックからきたものです。昔のウィ ンドウズの操作は統一性がありませんでしたが、machintoshからWindowsへのphotoshopなどのソフトの移植から始まってその操 作性を統一することで基本的な操作はユーザーはどのソフトを扱ってもすぐにできるようにしたわけです。マックのポリシーが現在のウィンドウズに反映さ れている 一部でもあります。そして良いところ悪いところを含めマックポリシーは昔も今も変わっていません。
補足するならマックの場合グラフィックを扱う場合どうしてもマウスやタブレットが必須ですから片手で保存やカット&ペーストなどができるコマンドキー となっていますので、MacWinキーにするとxyzzyの機能をいかしきれない。gnu/linuxなキー割り当ては使いやすいのですが、OSとの 統一性 に欠けるので誤操作や混乱を招きやすい。どちらも一長一短といったところでしょうか。


■久しぶりに C をやる。
忘れている事も多いし、色々コンパイラやら環境やら進化してる。
MSY2 のインストール後 Mingw-w64 のパスを通して shell からコマンドを打つが。。。

'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

「はぁ???」


他のアプリは動くんだが。。。困った。。。
コマンドラインで試してみると動く。。。おかしいなぁ
忘れてた。。。
デフォルトの新規バッファを UTF-8N にしてたよ!!
バッチファイル同様 ANSI(Shift_JIS) にしないとあかんやん。。。orz
という事で shell.l に加筆。shellバッファは常にANSI(Shift_JIS)で開くように変更
Windowsの環境使ってるからくだらない問題がおこるんや。と言われそうだが。。。
まぁ、メインでWindows使ってるから仕方ない
[2020-06-19]

■面倒な。。。テキストファイルでのエンコーディング

□追伸 3 [2020-08-22]
  バッチファイル内でUTF-8の文字コードを扱う場合、UTF-8Nで保存しないと不具合があるので
  「ANSI(Shift_JIS) で常に開く」を中止[2020-08-22]14:08:07(+0900)

□追伸 2 [2020-06-05]
  xyzzyでコピー&ペースト(コピペ)するときのデフォルトのクリップボードエンコーディングをUTF-16にしました
  新規ファイルなどデフォルトの文字エンコードをUTF-8(BOMなし)にしました
  UTF-8ならそのまま保存しても文字化けしないので文字コードを気にせず使えると思います。
  
  注意:ペーストするファイルが Shift_JIS であるとペーストした時は一時的に表示されますが
     保存したあと開くと文字化け(修復不能)してしまいます。
  
  XXX NG--バッチファイル .bat の拡張子をもつファイルは常に ANSI(Shift_JIS) で開くようにしました。
  XXX NG--.xyzzy ファイルにフックで書き込んだので適宜拡張子は変更できます
  XXX NG--(追加は関数を追加して下さい)

□追伸 [2020-02-05]
  xyzzyでコピー&ペースト(コピペ)するとき文字コードに気を付けなければなりません。
  ファイルが持つ文字コードはそれぞれ違っていたりするので文字化けを起こす事があります
  デフォルトでは Shift_JIS (ANSI) が指定されています。
  メニュー>編集>クリップボードエンコーディング
  から文字コード変換の種類が選べます。
  ブラウザなどのWEBからのコピペなどは UTF-16 にチェックすればOKです。
  ただ、ペーストするファイルが Shift_JIS などであるとペーストした時は一時的に表示されますが
  保存したあと開くと当然ですが文字化けしてしまいます。

■2019年のWindows10の更新アップデートのどこかでメモ帳の仕様が変わりました。
  文字コードの保存形式が
  ANSI
  UTF-16LE
  UTF-16BE
  UTF-8
  UTF-8(BOM付き)

  の表示になりました。
  
  これまでは UTF-8 の表示が UTF-8(BOM付き) であったので混乱することなく使えます。
  また「新しいテキスト ドキュメント.txt」を作成した時、これまでは ANSI がデフォルトの文字コードでしたが、デフォルトが UTF-8 になり韓国文字を入力してそのまま保存しても大丈夫な仕様になっています。
  ただバッチファイルなどを書くときは基本ANSIでないと動かないので(文字コードを指定すればできないわけではない)保存する時ちょっと面倒です。
  またANSIとUTF-8の区別がつかず、これまでWindowsがデフォルトで扱っていた ANSI(Shift_JIS)で開いてしまう場合もあり、そのままだと文字化けして表示されてしまいます。
  
  Windows10 のメモ帳の保存で UTF-16LE、UTF-16BE に関しては表示されてませんが(BOM付き)になってます。
  BOMなしの文字コードも一応あるようです(TCP/IPネットワークでのビッグエンディアン、Windowsの内部表現など)
  メモ と xyzzy との対応は以下のように変更されます。
  
  Windows 文字コード変換
    メモ = xyzzy
    
    ANSI = Shift_JIS (CR+LF)
    UTF-16LE = UTF-16LE-BOM (CR+LF)
    UTF-16BE = Unicode(UTF-16BE-BOM) (CR+LF)
    UTF-8 = Unicode(UTF-8N) (CR+LF)(BOMなし)
    UTF-8(BOM付き) = Unicode(UTF-8) (CR+LF)(BOM付き)

  
  Windowsの改行コードは CR+LF
  Macの改行コードは LF

■2018年までのWindows10
  ファイルを保存するときWindowsではShift_JISなどが一般的ですが
  Macなど他のOSとのファイルのやりとりする場合はHTMLでもよく使われている
  UTF-8 = Unicode(UTF-8)
  あたりが無難かも。。。
  左がメモで右がxyzzyで保存するときのエンコード指定です。
  
  Windows 文字コード変換
    メモ = xyzzy
    
    ANSI = Shift_JIS (CR+LF)
    Unicode = UTF-16LE-BOM (CR+LF)
    Unicode big endian = Unicode(UTF-16BE-BOM) (CR+LF)
    UTF-8 = Unicode(UTF-8) (CR+LF)(BOM付き)
  
  Windowsの改行コードは CR+LF
  Macの改行コードは LF
  になります。
  自動認識してくれるエディタであればそれほど気にする必要はないです。
  (※Windows10の2019年の途中まで)