xyzzyの導入手順

xyzzyの導入方法についての解説です。

尚、本解説では、他サイトでは殆ど触れられていないマルチユーザ環境を実現する導入方法について掲載しております。

インストールとアンインストール

インストール

xyzzyは、製作者である亀井哲弥氏のサイトにて、フリーソフトウェアとして公開・配布されています。

  1. 先ずは、亀井哲弥氏のサイトよりxyzzyのアーカイブを入手します。
  2. 取得したアーカイブをインストールしたいディレクトリ(例えば、d:\usr\local\xyzzy)に展開します。
  3. 必要ならば、デスクトップ上など利用し易い場所にxyzzyのショートカットアイコンを作成します。

以上で、xyzzyのインストールは終了です。続いて、使用環境の設定を行ってください。

アンインストール

  1. インストールしたxyzzyを含む関連ファイルを全て削除します。
  2. xyzzyの為に設定した環境変数を削除します。

以上で、xyzzyのアンインストールは終了です。

注釈

現バージョンのxyzzyは、レジストリへの書き込みを一切しません。

使用環境の設定

同一PCを複数人で使用していたり、ネットワーク共有されたフォルダにxyzzyを格納した場合には、ユーザ毎にホームディレクトリを設定することでユーザ毎に異なる環境設定を定義したファイル(.xyzzy)を用いることが可能になります。

例えば、ユーザ毎の環境設定ファイル等をFDDCD-RWなどの外部記録媒体に保存して持ち歩き、他のPCのxyzzyでそれを使用することも簡単にできます。

つまり、シングルユーザを想定したWindows 9x/Meでも複数ユーザでの利用が可能です。

xyzzyでは、ユーザのホームディレクトリは、以下の順番で決定されます。

  1. iniファイル内の[init]homeDir
  2. 環境変数 XYZZYHOME
  3. 環境変数 HOME
  4. 環境変数 HOMEDRIVE + HOMEPATH
  5. iniファイル内の[init]logDir
  6. xyzzy.exepath

ご利用環境に応じた最適な方法を上記の何れかを選択し、次項目の解説を参考にしてユーザのホームディレクトリの設定を行ってください。

iniファイルによる設定

xyzzyの初回起動時に、通常xyzzyをインストールしたディレクトリ(以下、$XYZZYと表記)のサブディレクトリusrに、自動的にユーザ毎のディレクトリが生成され、このディレクトリに使用しているOS毎に異なる名称のサブディレクトリにxyzzy.ini(ユーザー毎に自動的に作成される設定)ファイルを生成・収容します。このiniファイルにホームディレクトリを指定する記述を追加することで、ホームディレクトリを指定ディレクトリに設定できます。

注釈

xyzzy.iniを収容するディレクトリの名称は、OS毎に異なり、w95(Windows 95)、w98(Windows 98)、wme(Windows Me)、wnt(Windows NT)、w2k(Windows 2000)、wxp(Windows XP)の何れかになります。

次の例は、xyzzy上の ~/ の位置をd:\home\usernameに指定している。

[init]
homedir=d:\home\username

注釈

  • Windows 9x/Me では、ユーザ毎に異なる環境変数の設定が行えない為、マルチユーザ環境に対応させる際には、ユーザ毎のiniファイルにてホームディレクトリの設定を行う必要があります。
  • Windows NT/2000/XP では、後述の環境変数による設定のみでも充分です。
  • xyzzy.iniにホームディレクトリを設定しない場合には、環境変数で指定されたホームディレクトリ若しくは$XYZZY/xyzzy.exeと同一ディレクトリにある環境設定ファイル(.xyzzy)を使用することになります。
  • xyzzyのコマンドラインオプション(起動時の引数)に -ini ini-file と指定することで、自動的に作成される設定ファイルのファイル名をini-fileに変更できます。通常、指定されない場合はxyzzy.iniとなります。また、収容ディレクトリの変更方法についは、後記XYZZYCONFIGPATHをご覧下さい。

環境変数による設定

環境変数は、いろいろなプログラムがその動作を決める目的等に使用されます。xyzzyでは、ユーザーのホームディレクトリを指定する環境変数を設定することができます。

XYZZYHOME
ホームディレクトリの設定。(xyzzy専用の指定)
HOME
HOMEDRIVE + HOMEPATH
ホームディレクトリの設定。(他のプログラムでも使用する場合がある)

ご利用環境に応じ、上記の何れかでホームディレクトリの設定を行ってください。

次の例は、xyzzy上の ~/ の位置をd:\home\usernameに指定している。

set XYZZYHOME=d:\home\username

この例は、次の様に指定することもできる。

set HOME=d:\home\username

この例は、環境変数HOMEを使用する他のプログラム(例えば、Cygwin)のホームディレクトリと同じくしたい場合に有効であろう。また、次の様な環境変数の場合も同様の事である。

set HOMEDRIVE=d:
set HOMEPATH=\home\username

前記したこれらの例は、導入OSが Windows NT/2000 の場合にはユーザ環境変数に設定することになるが、システム環境変数であれば、次の例の様に指定することもできる。

set XYZZYHOME=d:\home\%UserName%

システム環境変数に上記の様に指定することで、環境変数XYZZYHOMEの値を各ユーザ毎にd:\home\usernameと割り当てることができる。

xyzzyの利用者によっては、xyzzyを導入するPCを複数ユーザで使用することがない場合やマルチユーザ環境を意識する必要性を感じない場合もあるであろう。その様な場合には、下記の様に設定することもできるが、筆者の個人的見解としてあまり推奨しない

set XYZZYHOME=d:\usr\local\xyzzy

上記のような環境変数を設定することで、xyzzy.iniにてホームディレクトリが指定されない場合に、環境変数で設定されたディレクトリにある環境設定ファイル(.xyzzy)を使用することができる。

他にも下記の様な環境変数を指定しておくのも良いだろう。

XYZZYCONFIGPATH
自動的に作成される設定ファイル(xyzzy.ini及び.xyzzy.history)を置くディレクトリ。未指定時は、$XYZZY/usr/username/osに置かれる。
xyzzyのコマンドラインオプション(起動時の引数)に -config config-directory と指定することで、ディレクトリを config-directory に変更することもできる。
PATH
xyzzyの実行ファイルがあるディレクトリをコマンド検索パスに追加する(所謂、パスを通す)ことで、MS-DOS プロンプト等からコマンド名のみの入力でプログラムを実行することができる。

注釈

  • 環境変数は、MS-DOS プロンプトにて SET と入力してEnterでコマンドを実行すると確認できます。
  • 環境変数の編集・設定方法は、OSにより異なります。
    • Windows 95/98 では、OSと同一ドライブ(通常はC:\)のルートにある autoexec.bat を編集します。
    • Windows Me では、システム設定ユーティリティで設定します([ファイル名を指定して実行] で msconfig と入力すると起動します)。
    • Windows NT や 2000, XP では、システムの設定で設定します。
  • Windows 9x/Me にてマルチユーザ環境に対応させる為には、ホームディレクトリの指定は環境変数ではなく、iniファイルによる設定を行ってください。

カスタマイズ

xyzzyのカスタマイズは、初期化ファイルに xyzzy lisp言語(Common Lisp に6割準拠らしいです)でコードを記述することで行います。しかし、Lisp言語に関する知識が全く無くても心配ご無用です。ウェブ上に掲載・紹介されるサンプル等を初期化ファイルにコピー&ペーストするだけでもどんどん進化(拡張)できます。勿論、本サイトでもサンプルをxyzzyのLisp用例に掲載していますので、是非ご覧下さい。

初期化ファイルについて

xyzzyの起動時、通常ユーザのホームディレクトリにある環境設定ファイル.xyzzyからLispプログラムを読み込みます。このファイルがxyzzyの初期化の仕方を指定するので、このファイルのことを初期化ファイル(init file)と呼びます。

また、$XYZZY/site-lispsiteinit.l(或いは siteinit.lc)という初期化ファイルを作成できます。このファイルはユーザの初期化ファイルを読む前に常に読み込まれます(実際は、xyzzyがより早く読み込みを行う為にダンプされる時に、ダンプイメージを生成する際にあるならば読み込みます)。

尚、Version 0.2.1.196 にて、Shift_JIS以外のLispコードのサポートもされましたが、Shift_JISを使用した方が無難の様です。

全ユーザ共通の環境設定(siteinit.l

xyzzyでは、全ユーザ共通の環境設定をsiteinit.lファイルに記述します。このファイルにLisp言語で記述された内容がxyzzyの起動時に全ユーザ共通の設定として反映されます。

先ずは、$XYZZY/site-lispにファイル内容が空のsiteinit.lを用意してください。

  1. C-xC-fと押し、ミニバッファに Find file: と表示されたら $XYZZY/site-lisp/siteinit.l と入力してEnterを押します。
  2. 開いたバッファに ;;; -*- Mode: Lisp; Package: user; Encoding: Shift_JIS- *- と記述します(記述しなくても良い)。
  3. C-xC-s でそれをShift-JISで保存します。

注釈

siteinit.lの内容を変更した場合、その内容を反映させるには、以下の手順が必要になります。

  1. M-x: eval-buffer を実行してsiteinit.lの文法を点検します。
  2. siteinit.lをバイトコンパイル(M-x: byte-compile-file)してsiteinit.lcを生成します。
  3. 一旦xyzzyを終了し、Shift + Ctrlを押しながらxyzzyを再起動します。
  4. 起動時にsiteinit.lcを評価することで、自動的にダンプイメージが(再)生成されます。

生成されるダンプイメージは、xyzzy.exeと同一ディレクトリにxyzzy.osというファイル名称で生成されます。このダンプイメージのファイル拡張子は、OSにより異なり、.w95(Windows 95)、.w98(Windows 98)、.wme(Windows Me)、.wnt(Windows NT)、.w2k(Windows 2000)、.wxp(Windows XP)の何れかになります。

各ユーザ毎の環境設定(.xyzzy

xyzzyでは、各ユーザ毎の環境設定を.xyzzyに記述します。このファイルにlisp関数呼び出し式を記述することにより、xyzzyの起動時にsiteinit.lを処理した後に読み込むことでユーザ固有の設定を行います。

先ずは、ユーザのホームディレクトリにファイル内容が空の.xyzzyファイルを用意してください。

  1. C-xC-fと押し、Find file:~/.xyzzy と指定してEnterを押します。
  2. ;;; -*- Mode: Lisp; Package: user; Encoding: Shift_JIS -*- と記述します(記述しなくても良い)。
  3. C-xC-s でそれをShift-JISで保存します。

注釈

  • xyzzyのコマンドラインオプション(起動時の引数)に -q(或いは -no-init-file)と指定することでxyzzyに初期化ファイルを読み込まないことを指定できます。
  • .xyzzyに大量のlispコードを記述する場合には、.xyzzy.lという別の名前のファイルへ内容をコピーして、それをバイトコンパイルし、.xyzzyではload.xyzzy.lcをロードすると良いです。詳しくは、xyzzyのLisp用例をご覧下さい。