今回は、Scheme言語を使う際に便利なエディタの設定などを紹介します。viは、あまり使い込んでいませんので実はよく知りません。ただ、括弧の対応を取りたいときは、括弧の上にカーソルを合わせて%をタイプすると対応する括弧の位置にカーソルが飛びます。もう一度%をタイプすると元の位置にカーソルが戻ります。また、: をタイプし、exモードに落ちて set showmatch または、set sm とタイプし enter します。viモードに戻って、ふつうにプログラムをタイプしてみてください。閉じ括弧をタイプすると対応する開き括弧にカーソルが、ごく僅かな時間ですが移動して元に戻ります。インデントが面倒なときは、同様に exモードに落ちて set autoindent というコマンドを入力すると自動インデントができるようになります。ただし、Schemeの文法を検知して適切にインデントすることは出来ません。改行すると直前の行と同じインデント位置にカーソルが自動的に移動するだけです。emacsを使う場合は、emacsのバッファ内で SchemeインタープリタのREPLを動作させながら、別のバッファでプログラムを編集し、そのバッファ内からインタープリタで式を評価させることができます。まず、*scratch* バッファで次のような Emacs Lisp の式を入力し、各式の最後で C-x C-e とタイプして式を評価させます。(setq scheme-program-name "numb-lambda")(show-paren-mode 1)シンボル scheme-program-name には、Schemeインタープリタのコマンド名を設定します。set-paren-mode コマンドは括弧の後ろにカーソルを移動させると対応する括弧の組がハイライト表示されます。文字と背景の色の設定によっては括弧が見えなくなってしまうことがあります。その場合、引数を -1 に変更して、この式を再評価してください。そうすると、この機能が無効となります。以下が正常に動作したら、上の2つの式を .emacs に追加しておくとよいでしょう。emacsでは、閉じ括弧を入力すると対応する開き括弧に僅かな時間だけカーソルが移動し戻ります。括弧を眼で数える負担を軽減してくれます。Schemeの開発環境ですが、まずはウィンドウをスプリット(C-x 2)して、各ウィンドウの高さを調整してください。片方のウィンドウで Scheme の REPL を動作させ、もう片方で Scheme プログラムファイルを編集します。まずは、REPLを動作させたいウィンドウに移動(C-x o)して、M-x run-scheme のようにコマンドを起動します。そのバッファ内にプロンプトが表示される筈です。次にプログラムファイルを入力するウィンドウに移動(C-x o)して、拡張子が .scm となるようなファイルを開きます。新規に作成しても構いません。どちらの場合も、C-x C-f コマンドを使います。このバッファで式を入力したら、カーソルをその式の直後に移動してコマンドを入力します。すると、Schemeインタープリタが、その式を評価します。関数の定義など評価しても、何も起こってないように見えるかも知れません。そんなときは、REPLの動作しているバッファに移動(C-x o)して、関数をバインドしたシンボルを入力してみてください。正常に定義されていることが確認できる筈です。プログラム編集を行うバッファでは次のコマンドを使うと便利です。以下は、EmacsのInfoファイルから、コピーしてきました。C-h i コマンドで info モードを開いた後、Emacsの下、Programs のトピックを参照すると良いでしょう。`C-M-n'Move forward over a parenthetical group (`forward-list').`C-M-p'Move backward over a parenthetical group (`backward-list').`C-M-u'Move up in parenthesis structure (`backward-up-list').`C-M-d'Move down in parenthesis structure (`down-list').ところで、Schemeモードでプログラムを入力中には文脈に応じてインデントしてくれます。REPLのバッファでは、M-p コマンドを使うと直前の行をプロンプト位置に入力することができます。以上、ごく簡単に Scheme 開発環境について紹介しました。他のエディタについて筆者は無知ですので、各自、お調べになってください。