Scheme(LISP)は、括弧を多用します。多くの場合、括弧のネストが相当深くなりますのでプログラムの入力・編集の際には括弧を数えてくれるエディタを使うと便利です。
今回は、Scheme言語を使う際に便利なエディタの設定などを紹介します。
viの場合
viは、あまり使い込んでいませんので実はよく知りません。ただ、括弧の対応を取りたいときは、括弧の上にカーソルを合わせて%
をタイプすると対応する括弧の位置にカーソルが飛びます。もう一度%
をタイプすると元の位置にカーソルが戻ります。
また、:
をタイプし、exモードに落ちてset showmatch
または、set sm
とタイプし Enter します。viモードに戻って、ふつうにプログラムをタイプしてみてください。閉じ括弧をタイプすると対応する開き括弧にカーソルが、ごく僅かな時間ですが移動して元に戻ります。
インデントが面倒なときは、同様に exモードに落ちてset autoindent
というコマンドを入力すると自動インデントができるようになります。ただし、Schemeの文法を検知して適切にインデントすることは出来ません。改行すると直前の行と同じインデント位置にカーソルが自動的に移動するだけです。
Emacsの場合 emacsを使う場合は、emacsのバッファ内で SchemeインタープリタのREPLを動作させながら、別のバッファでプログラムを編集し、そのバッファ内からインタープリタで式を評価させることができます。
まず、*scratch*
バッファで次のような Emacs Lisp の式を入力し、各式の最後で C-x C-e とタイプして式を評価させます。
(setq scheme-program-name "namb-lambda")
(show-paren-mode 1)
シンボルscheme-program-name
には、Schemeインタープリタのコマンド名を設定します。
set-paren-mode
コマンドは括弧の後ろにカーソルを移動させると対応する括弧の組がハイライト表示されます。文字と背景の色の設定によっては括弧が見えなくなってしまうことがあります。その場合、引数を -1 に変更して、この式を再評価してください。そうすると、この機能が無効となります。
以下が正常に動作したら、上の2つの式を.emacs
に追加しておくとよいでしょう。