Cygwin と CLISP をインストールする手順を説明します. Cygwin は Windows 上で Linux に類似した環境を作り出します. 以下で説明する Cygwin および CLISP のインストール方法では, OS は Windows XP Professional Service Pack 2, Cygwin DLL のバージョンは 1.5.25-11(2008年3月9日リリース) です.
Cygwin のサイト (http://cygwin.com/)に アクセスします.(下図.以下,説明に続いて図があります.)
ページをスクロールして下に進んでいくと,Cygwin のインストール およびアップデートについての記述が見つかります. Cygwin のインストール作業を行う setup.exe という 実行ファイルへのリンクをクリックします. あるいは,"Install or update now!" "Install cygwin now" というリンクをクリックしてください.
ファイルを実行するか,保存するかをたずねられます. どちらを選択してもかまいません.以下の説明では [保存] を選択しています.
ファイルの保存先を選んで [保存] ボタンを押します. 下図では,C ドライブの Program Files フォルダの中に 保存することを選択しています.
setup.exe のダウンロードが終了したら,setup.exe の アイコンが保存した場所(ここでは Program Files の中) にできていることを確認してください.
cygwin.exe のアイコンをダブルクリックします. setup プログラムについての説明が現れます. [次へ] ボタンを押します.
インストールのタイプを選択します. setup プログラムはインストール作業に必要なファイルを インターネットからダウンロードします. "Install from Internet" を選択して [次へ] ボタンを押します.
Cygwin をインストールするディレクトリ,利用者, テキストファイルのタイプを指定します. インストールするディレクトリはデフォルトのまま (C:\cygwin)でいいでしょう.ここで紹介している インストール作業の前にこのディレクトリをあらかじめ 作成しておく必要はありません. 指定したディレクトリが存在しない場合には, そのディレクトリが作成されます.利用者は All Users とします. テキストファイルのタイプは Unix でも DOS でもかまいません. ここでは Unix としておきます. [次へ] ボタンを押します.
セットアッププログラムが ダウンロードするパッケージファイルを保存する場所を 指定します.インストールが完了すればこれらのパッケージファイルは 消去してかまいません.下図では C:\temp\cygwin としました. ディレクトリを指定したら [次へ] ボタンを押します. このディレクトリをあらかじめ作成しておく必要はありません.
必要なファイルをダウンロードするために, セットアッププログラムがインターネットへの接続を行う方法を 指定します.Direct Connection を選んで [次へ] ボタンを押します. うまくいかない場合には他の方法を試してください. Proxy の設定をしている環境では, Use HTTP/FTP Proxy を選択します.
パッケージファイルをどこから ダウンロードするかを選択します.日本のサーバ (最後が .jp となる)のいずれかを選べばよいでしょう. 選択したら [次へ] ボタンを押します.
パッケージのダウンロードとインストールのプロセスが 開始されます.
しばらくすると下のような画面になります.ここでは インストールするパッケージを選択します.
CLISP はデフォルトではインストールされません. Interpreters というカテゴリを見つけて,左の + マークを マウスで左クリックしてください.
いくつかのパッケージのリストが表示されます.
clisp: An ANSI Common Lisp implementation という パッケージがあります.その下に,CLSIP に関連した いくつかのパッケージが並んでいます.
インストールするパッケージを選択します. そのパッケージの左側に 表示されている Skip という文字の上で マウスを左クリックすると,文字が変わります. 下図では 2.43-2 と表示されています.これはインストールされる CLISP のバージョンです. CLISP 関連のパッケージすべてを選択してもいいですし,下図のように clisp: An ANSI Common Lisp implementation だけを選択してもよいです.
Emacs から CLISP を呼び出して使用しますので,Emacs も インストールします.Emacs は CLISP 関連パッケージのすぐ下に 表示されています.あるいは,Editors という カテゴリ(下図)の中にも含まれています.以下では, このカテゴリから Emacs パッケージを選択します.
Editors というカテゴリの左にある + マークを クリックすると,Emacs パッケージが見つかります. emacs: The extensible, customizable, self-documenting real-time display editor と,emacs-X11: X11 binaries for Emacs という2つのパッケージをインストールします.
CLISP パッケージを選択した時と同様に, emacs: The extensible, customizable, self-documenting real-time display editor というパッケージの左側に 表示されている,Skip という 文字をクリックしてください.インストールされる Emacs の バージョンが表示されます.下図では 21.2-13 です. emacs-X11 も忘れずに選択してください.X Window から Emacs を呼び出すために必要です.
もうひとつインストールしておきたいパッケージに, X Window があります. X11 というカテゴリがありますので, このインストールオプションを Default から Install に変更してください.
インストールするパッケージをすべて選択したら, [次へ] ボタンを押します.パッケージのダウンロードと インストールが実行されます.
Cygwin のアイコンをデスクトップおよびスタートメニュー に作成することができます. 下図のようにチェックを入れて [完了] ボタンを押します. これで CLISP および Emacs とともに Cygwin が インストールされました.
CLISP のデフォルト環境は,改行すると括弧の対応がわからなく なってしまうので,少し複雑な関数定義を行うには不便です. そこで,Emacs というエディタで関数定義を書き, Emacs から CLISP を呼び出して評価を行うようにします. 方法を説明します.これを行うためには .emacs という名前のファイル に設定を書いておく必要があります.以下,その方法を説明します.
デスクトップに作成した Cygwin のアイコンを ダブルクリックして Cygwin を起動します. 以下のような黒いウィンドウが現れます.
emacs と入力して Enter キーを押してください.
Emacs というエディタが起動されます.
ホームディレクトリの下に .emacs という設定ファイルを作ります. このファイル(テキストファイル形式です)の中に, Emacs から CLISP を呼び出すための設定を書きます. ホームディレクトリとは,ユーザごとに用意された, ユーザが自由に利用できるディレクトリです (個人が占有するパソコンではユーザは1人だけです). cygwin というディレクトリ(このページに 示した Cygwin インストールの方法に従った場合には, C ドライブの直下にあります)の下に,home というディレクトリがあり ます.home ディレクトリの下に,ユーザごとの ホームディレクトリが作成されます. 下図では,TOTORO というディレクトリが,ユーザ TOTORO の ホームディレクトリです.
Emacs から .emacs というファイルを呼び出します. この時点では,このファイルはもちろん存在しません. 呼び出しで指定したファイルが存在しない場合には, そのファイルが新規に作成されます.
コントロールキーを押したまま,X キーを押してください. Emacs の一番下のスペース(ミニバッファと呼ばれます) に,C-x- と表示されます.X キーから指を離します.
次に,コントロールキーを押したまま,F キーを押してください. 以上の一連の動作は,Emacs 関連の文献では C-x C-f と表記されます. Emacs の一番下のスペース(ミニバッファと呼ばれます) に,Find file: ~/ と表示されます.~/ はホームディレクトリを 表しています.F キーから指を離します.
ここでファイル名を入力すると,ホームディレクトリの中から そのファイルが呼び出されます. .emacs と入力して Enter キーを押してください. 最初の「.」(ドット)を忘れないように.
.emacs というファイルがホームディレクトリに存在しなければ,ファイルが 新規作成されます.ミニバッファには (New File) と 表示されます.
clisp.exe という CLSIP の実行ファイルを Emacs から呼び 出す設定を書きます.cygwin というディレクトリ(このページに 示した Cygwin インストールの方法に従った場合には, C ドライブの直下にあります)の下に,bin というディレクトリがあり, その中に clisp.exe という CLSIP の実行ファイルがあります.
この実行ファイルを Emacs から呼び出す設定 を .emacs ファイル(いま開いている新しいファイル)の 中に書いておきます.
(setq inferior-lisp-program "/cygdrive/c/cygwin/bin/clisp.exe")
というように書いてください.これは,inferior-lisp-program という 名前の変数に,clisp の実行ファイルを値として与えるという設定です. Cygwin では C ドライブが /cygdrive/c となります. " " の中は clisp.exe への パスで,使用している環境(パソコン)によって異なります. clisp.exe がどこにあるかを確認し,そこへのパスを書いてください.
相対パスでの指定も可能です.
(setq inferior-lisp-program "../../bin/clisp.exe")
というように書きます." " の中は clisp.exe への パスで,使用している環境(パソコン)によって異なります.
clisp.exe への相対パスで bin の前に書かれている .. (2つのドット)は, ディレクトリの階層をひとつ上るという意味です. 出発点はホームディレクトリです. この設定を書いたパソコンでは,../../ で, ホームディレクトリからディレクトリの階層を 2つあがります.そうすると cygwin ディレクトリにたどり着きます. cygwin ディレクトリの真下には bin というディレクトリが見え, そのなかに clisp.exe があります.
Windows 環境変数 Path の設定であらかじめ \cygwin\bin への パスを通しておけば,
(setq inferior-lisp-program "clisp.exe")
というように,CLISP の実行ファイル名を直接書くだけで OK です.
.emacs を保存します. .emacs ファイルを呼び出した(実際には,このファイルは存在しなかった ので新規作成された)ときのように, コントロールキーを押しながら X キーを押し, 続いてコントロールキーを押しながら S キーを押します. 以上の一連の動作は,Emacs 関連の文献では C-x C-s と表記されます. これで .emacs ファイルがホームディレクトリの下に保存されます. 下図のミニバッファ(一番下の狭い領域)を見てください. Wrote /home/TOTORO/.emacs と表示されています. .emacs ファイルを再編集したければ,新規に作成した時とまったく 同様に,emacs から C-x C-f で呼び出します.
Emacs を終了します.最初に,Esc キーを押して すぐに指を離します.次に X キーを押しすぐに指を離します. この操作は Emacs 関連の文献では M-x と表記されます. Emacs の一番下のスペース(ミニバッファ) に M-x と表示され,ここにカーソルが移動します.
M-x に続いて kill-emacs と入力し,Enter キーを押します.
すると,Emacs が終了され,Cygwin に戻ってきます.Cygwin を終了させるには, logout と入力して Enter キーを押してください.
Emacs で LISP のプログラム(関数)を書くときに, インデントに Tab キーを使うと,
(defun foodtest (food) (cond ((equal food 'pizza) 'good) ((equal food 'peas) 'bad) (t 'ok)))
というように見栄えよく書くことができます. しかし,このプログラムを実行(関数を評価)してやると,
You are in the top-level Read-Eval-Print loop. Help (abbreviated :h) = this list Use the usual editing capabilities. (quit) or (exit) leaves CLISP.
というエラーメッセージが表示されてしまいます. Tab で入れた空白が引っ掛かるためです. このエラーを避けるためには .emacs の中に
(setq-default indent-tabs-mode nil)
と書いておきます.Tab キーを打ったときに スペースでインデントを行ってくれるので,エラーになりません.