Cygwin と CLISP のインストールおよび設定

Cygwin と CLISP をインストールする手順を説明します. Cygwin は Windows 上で Linux に類似した環境を作り出します. 以下で説明する Cygwin および CLISP のインストール方法では, OS は Windows XP Professional Service Pack 2, Cygwin DLL のバージョンは 1.5.25-11(2008年3月9日リリース) です.

Cygwin と CLSIP のインストール

Cygwin のサイト (https://cygwin.com/)に アクセスします.(下図.以下,説明に続いて図があります.)

cygwin のサイト

ページをスクロールして下に進んでいくと, Cygwin のインストールおよびアップデートについての記述が見つかります. Cygwin のインストール作業を行う setup.exe という実行ファイルへのリンクをクリックします. あるいは,"Install or update now!" "Install cygwin now" というリンクをクリックしてください.

setup.exe へのリンク

setup.exe へのリンク

ファイルを実行するか,保存するかをたずねられます. どちらを選択してもかまいません.以下の説明では [保存] を選択しています.

setup.exe の保存

ファイルの保存先を選んで [保存] ボタンを押します. 下図では,C ドライブの Program Files フォルダの中に保存することを選択しています.

setup.exe の保存

setup.exe のダウンロードが終了したら,setup.exe のアイコンが保存した場所(ここでは Program Files の中) にできていることを確認してください.

setup.exe の保存

cygwin.exe のアイコンをダブルクリックします. setup プログラムについての説明が現れます. [次へ] ボタンを押します.

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 というカテゴリを見つけて, 左の + マークをマウスで左クリックしてください.

Interpreters カテゴリ

いくつかのパッケージのリストが表示されます.

Interpreters カテゴリのパッケージ

clisp: An ANSI Common Lisp implementation というパッケージがあります. その下に,CLSIP に関連したいくつかのパッケージが並んでいます.

CLISP 関連パッケージ

インストールするパッケージを選択します. そのパッケージの左側に表示されている Skip という文字の上でマウスを左クリックすると,文字が変わります. 下図では 2.43-2 と表示されています.これはインストールされる CLISP のバージョンです. CLISP 関連のパッケージすべてを選択してもいいですし,下図のように clisp: An ANSI Common Lisp implementation だけを選択してもよいです.

CLISP 関連パッケージの選択

Emacs から CLISP を呼び出して使用しますので, Emacs もインストールします. Emacs は CLISP 関連パッケージのすぐ下に表示されています. あるいは,Editors というカテゴリ(下図)の中にも含まれています. 以下では,このカテゴリから Emacs パッケージを選択します.

emacs のインストール

Editors というカテゴリの左にある + マークをクリックすると, Emacs パッケージが見つかります. emacs: The extensible, customizable, self-documenting real-time display editor と,emacs-X11: X11 binariesfor Emacs という2つのパッケージをインストールします.

emacs パッケージ

CLISP パッケージを選択した時と同様に, emacs: The extensible, customizable, self-documenting real-time display editor というパッケージの左側に表示されている, Skip という文字をクリックしてください. インストールされる Emacs のバージョンが表示されます. 下図では 21.2-13 です. emacs-X11 も忘れずに選択してください.X Window から Emacs を呼び出すために必要です.

emacs パッケージの選択

もうひとつインストールしておきたいパッケージに, X Window があります. X11 というカテゴリがありますので, このインストールオプションを Default から Install に変更してください.

X Windows のインストール

インストールするパッケージをすべて選択したら, [次へ] ボタンを押します.パッケージのダウンロードとインストールが実行されます.

インストールの実行

Cygwin のアイコンをデスクトップおよびスタートメニューに作成することができます. 下図のようにチェックを入れて [完了] ボタンを押します. これで CLISP および Emacs とともに Cygwin がインストールされました.

アイコンの作成とインストール終了

Emacs から CLISP を呼び出すための設定

CLISP のデフォルト環境は, 改行すると括弧の対応がわからなくなってしまうので,少し複雑な関数定義を行うには不便です. そこで,Emacs というエディタで関数定義を書き, Emacs から CLISP を呼び出して評価を行うようにします. 方法を説明します.これを行うためには .emacs という名前のファイルに設定を書いておく必要があります. 以下,その方法を説明します.

デスクトップに作成した Cygwin のアイコンをダブルクリックして Cygwin を起動します. 以下のような黒いウィンドウが現れます.

Cygwin の起動

emacs と入力して Enter キーを押してください.

Emacs の起動

Emacs が起動されます.

Emacs の起動

ホームディレクトリの下に .emacs という設定ファイルを作ります. このファイル(テキストファイル形式です)の中に, Emacs から CLISP を呼び出すための設定を書きます. ホームディレクトリとは,ユーザごとに用意された,ユーザが自由に利用できるディレクトリです (個人が占有するパソコンではユーザは1人だけです). cygwin というディレクトリ(このページに示した Cygwin インストールの方法に従った場合には, C ドライブの直下にあります)の下に,home というディレクトリがあります. home ディレクトリの下に,ユーザごとのホームディレクトリが作成されます. 下図では,TOTORO というディレクトリが,ユーザ TOTORO のホームディレクトリです.

ホームディレクトリ TOTORO

Emacs から .emacs というファイルを呼び出します. この時点では,このファイルはもちろん存在しません. 呼び出しで指定したファイルが存在しない場合には, そのファイルが新規に作成されます.

コントロールキーを押したまま,X キーを押してください. Emacs の一番下のスペース(ミニバッファと呼ばれます) に,C-x- と表示されます.X キーから指を離します.

C-x

次に,コントロールキーを押したまま,F キーを押してください. 以上の一連の動作は,Emacs 関連の文献では C-x C-f と表記されます. Emacs の一番下のスペース(ミニバッファと呼ばれます) に,Find file: ~/ と表示されます.~/ はホームディレクトリを表しています. F キーから指を離します.

Find File

ここでファイル名を入力すると,ホームディレクトリの中からそのファイルが呼び出されます. .emacs と入力して Enter キーを押してください. 最初の「.」(ドット)を忘れないように.

find .emacs

.emacs というファイルがホームディレクトリに存在しなければ, ファイルが新規作成されます.ミニバッファには (New File) と表示されます.

new file

clisp.exe という CLSIP の実行ファイルを Emacs から呼び出す設定を書きます. cygwin というディレクトリ(このページに示した Cygwin インストールの方法に従った場合には, C ドライブの直下にあります)の下に,bin というディレクトリがあり, その中に clisp.exe という CLSIP の実行ファイルがあります.

new file

この実行ファイルを 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

相対パスでの指定も可能です.

(setq inferior-lisp-program "../../bin/clisp.exe")

というように書きます." " の中は clisp.exe へのパスで, 使用している環境(パソコン)によって異なります.

clisp.exe へのパスで bin の前に書かれている .. (2つのドット)は, ディレクトリの階層をひとつ上るという意味です. 出発点はホームディレクトリです. この設定を書いたパソコンでは,../../ で, ホームディレクトリからディレクトリの階層を2つあがります. そうすると cygwin ディレクトリにたどり着きます. cygwin ディレクトリの真下には bin というディレクトリが見え, そのなかに clisp.exe があります.

path to 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 で呼び出します.

save dotemacs

Emacs を終了します. 最初に,Esc キーを押してすぐに指を離します.次に X キーを押しすぐに指を離します. この操作は Emacs 関連の文献では M-x と表記されます. Emacs の一番下のスペース(ミニバッファ)に M-x と表示され,ここにカーソルが移動します.

M-x

M-x に続いて kill-emacs と入力し,Enter キーを押します.

M-x kill-emacs

すると,Emacs が終了され,Cygwin に戻ってきます.Cygwin を終了させるには, logout と入力して Enter キーを押してください.

logout cygwin

付記

Tab が入ったプログラムでのエラー

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 キーを打ったときにスペースでインデントを行ってくれるので,エラーになりません.

indent-tabs-mode nil