-
Lem エディタで、Scheme 言語のプログラムの作成を行うためのモードです。
-
(キーバインドの記号 (C- 等) の意味については、Emacs 関連の文書を参照してください)
-
Scheme の処理系は、事前にインストールされている必要があります。
(デフォルトでは、Scheme の処理系は、Gauche を想定しています)
-
拡張子が .scm, .sld, .rkt のファイルを開くか、または、
M-x scheme-mode で、scheme-mode に入ります。 -
主なキーバインド
キー内容(コマンド名)Tab
インデント または シンボル補完 (indent-line-and-complete-symbol) C-M-\
リージョンのインデント (indent-region-command) C-c C-e
直前の式を評価 (scheme-eval-last-expression) C-x C-e
同上 C-c C-r
リージョンを評価 (scheme-eval-region) C-c C-l
ファイルを Scheme プロセスにロード (scheme-load-file) C-c C-z
REPL バッファに移動 (scheme-switch-to-repl-buffer) C-c z
同上 (備考) リージョンとは、C-Space (または C-@) でマークした場所から
カーソル直前までの範囲のことです。
(選択状態の表示は C-g で解除できます) -
処理系の設定
~/.lem/init.lisp 内に以下のように記述すると、
起動する Scheme の処理系を指定できます。
(以下はデフォルトの設定です (省略可))(setf lem-scheme-mode:*scheme-run-command* '("gosh" "-i")) (setf lem-scheme-mode:*scheme-load-command* "load")
(備考) ロードコマンドは、scheme-load-file で使われるコマンドです。
(処理系によっては "include" 等、別のコマンドにする必要があります) -
キーワードの追加
~/.lem/init.lisp 内に以下のように記述すると、
補完/ハイライト/インデント を行う キーワード を追加できます。
(デフォルト設定は こちら を参照)(setf (lem-scheme-mode:scheme-keyword-data) (append (lem-scheme-mode:scheme-keyword-data) ;; name completion highlight indentation '(("reset" t t nil) ("shift" t t 1) ("call/pc" t t nil))))
(備考) 各項目は、nil を指定すると対象外になります。
indentation には、body (または expr) の前の引数の数を指定してください。
-
scheme-mode で評価を行うか、または、
M-x start-scheme-repl で、Scheme の REPL バッファが開きます。
REPL バッファのモードは scheme-repl-mode になります。 -
主なキーバインド
キー内容(コマンド名)Return
評価または改行 (scheme-eval-or-newline) M-p
1個前の入力を表示 (listener-prev-input) M-n
1個後の入力を表示 (listener-next-input) M-r
過去の入力を検索 (listener-previous-matching-input) C-c C-u
現在の入力をクリア (listener-clear-input) C-c M-o
REPL バッファ全体をクリア (listener-clear-buffer) なし Scheme プロセスを強制終了 (scheme-kill-process)
-
Gauche:Lemエディタ
https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3ALem%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF -
基本のキーバインドについては、以下のページがよくまとまっています。
https://qiita.com/dhomma/items/b458ec3738714f57525f
(Lem のキーバインド) -
Scheme プログラムの開発を支援するための swank サーバと接続できるようになりました。
- r7rs-swank ( https://github.com/ecraven/r7rs-swank )
- r7rs-swank-Gauche-custom ( https://github.com/Hamayama/r7rs-swank-Gauche-custom )
(r7rs-swank を Gauche 用に改造したものです)
(2019-6-20)(2019-6-23)(2019-6-24)(2019-7-18)(2019-7-20)
(2019-12-21)(2020-1-23)(2020-1-27)(2020-12-30)