状況: Emacs で REPL を使用しているときに、いくつかの関数を入力しました。問題: 単にバッファを保存しているときに、「; 評価が中止されました」のようなジャンクがあります。私が欲しいもの: 最新のリビジョンで入力したすべての関数の明確な説明。
それをしてもいいですか?ありがとう。
状況: Emacs で REPL を使用しているときに、いくつかの関数を入力しました。問題: 単にバッファを保存しているときに、「; 評価が中止されました」のようなジャンクがあります。私が欲しいもの: 最新のリビジョンで入力したすべての関数の明確な説明。
それをしてもいいですか?ありがとう。
理解できません。REPL で定義を入力し、後でそれらを回復することを期待していますか? 他の言語と同じように、ソース ファイルを保存するだけです。Cx 2 を使用して、Emacs ウィンドウを 2 つに分割します。Cx Cf foo.lisp のいずれかでソースファイルを開きます。Cc Ck、Cc Cr など (SLIME メニューを参照) を使用して、REPL 内のソース コードの領域をコンパイル/評価します。
私は過去にこのようなものを探しましたが、見つけることができませんでした。すべての定義を別のバッファに書き、SLIME の広範な評価/コンパイル関数 (Cc Ck はファイル全体をロードし、Cx Ce は最後の式を評価し、Cc Cr はリージョンを評価するなど) を使用して、直接入力するだけにするのが最善です。保存したくないREPLのもの。
ええと、C-x o
またはC-x b
SLIME REPLバッファにアクセスしてから、C-x w
またはC-x C-s
ファイルに保存します。SLIME/CL に関するものはすべて読者のコメントです。プロンプトをコメントとして扱うファイルをリロードするためのリーダー ハックを作成するか、自分でファイルを調べて、保存したい部分をキャプチャすることができます。
repl に関数を入力するのではなく、別のバッファーにコードを記述してその中で評価するのが最善のワークフロー方法であることに同意します。
あなたがreplの道を進んだと仮定すると、C. Martinのreplログを保存して手動でそれを通過するという解決策があなたの唯一の選択肢だと思います。
関数と変数を別のパッケージに入力した場合は、パッケージ内のシンボルを調べて、保持するものを決定するのに役立てることができます。
たとえば、cl-user パッケージで作成されたすべてのシンボルを表示するには:
(let ((p (find-package :cl-user)))
(loop
for s being the symbols in p
when (eq p (symbol-package s))
do (format t "~a~%" s)))