Lispモードは、Common Lispなどの汎用Lisp方言で記述されたプログラムを編集するための主要なモードです。モードコマンドはM-x lisp-modeです。Emacsは、ファイル名が.l、.lsp、または.lispで終わるファイルに対して、自動的にLispモードを使用します。
外部のLispセッションをEmacsのサブプロセスまたはインフェリオールプロセスとして実行し、そこに式を渡して評価させることができます。外部のLispセッションを開始するには、M-x run-lispと入力してください。これによりlispという名前のプログラムが実行され、入出力の両方が*inferior-lisp*という名前のEmacsバッファを経由するように設定されます。M-x run-lispで実行されるLispプログラムの名前を変更するには、変数inferior-lisp-programを変更してください。
*lisp* バッファのメジャーモードは Inferior Lisp モードであり、Lisp モードと Shell モードの特性を兼ね備えています(Shell モード を参照)。Lisp セッションに入力を送信するには、*lisp* バッファの末尾に移動して入力を入力し、続けて RET と入力します。Lisp セッションからのターミナル出力は、自動的にバッファに挿入されます。
LispモードでLispプログラムを編集している際、C-M-x (lisp-eval-defun) と入力すると、Lispモードのバッファにある式を、M-x run-lisp
で開始したLispセッションに送信できます。送信される式は、ポイントにあるか、あるいはそれ以降の最上位のLisp式です。得られた値は、通常通り
*inferior-lisp* バッファに格納されます。なお、Lispモードにおける C-M-x の動作は、式がEmacs内で評価されるのではなく別のLisp環境に送信される点を除けば、Emacs
Lispモードにおける動作(Emacs Lisp式の評価
を参照)と非常に似ています。
Schemeコードの編集機能と、式をSchemeサブプロセスに送信する機能は非常によく似ています。SchemeソースファイルはSchemeモードで編集され、このモードはM-x scheme-modeで明示的に有効化できます。M-x run-schemeと入力することでSchemeセッションを開始でき(Schemeとのやり取りに使用するバッファは*scheme*という名前です)、C-M-xと入力することでそこに式を送信できます。