Ситуация: я ввел несколько функций во время работы с REPL в Emacs. Проблема: когда я просто сохраняю буфер, появляется мусор вроде «; Оценка прервана». Что мне нужно: четкие описания всех функций, которые я ввел в их последней версии.
Могу ли я сделать это? Спасибо.





Я не понимаю. Вы вводите определения в REPL и собираетесь восстановить их позже? Просто сохраните исходный файл, как на любом другом языке. Используйте C-x 2, чтобы разделить окно Emacs на две части. Откройте исходный файл в одном из них C-x C-f foo.lisp. Используйте C-c C-k, C-c C-r и друзей (см. Меню 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 - это комментарии читателей; вы можете либо написать читательский прием, чтобы перезагрузить файл, обрабатывая запросы как комментарии, либо вы можете просмотреть файл самостоятельно, чтобы захватить фрагменты, которые вы хотите сохранить.
Я согласен с тем, что лучший метод рабочего процесса - это написать код в отдельном буфере и оценивать его, а не вводить функции в ответ.
Предполагая, что вы пошли путем ответа, я думаю, решение C.Martin для сохранения журнала ответов и ручного просмотра его - ваши единственные варианты.
Если вы ввели функции и переменные в отдельный пакет, вы можете просмотреть символы в пакете, чтобы решить, что вы хотите сохранить.
Например. чтобы увидеть все символы, созданные в пакете 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)))
Я знаю, что должен был это понять. Думаю, у меня все еще широко распахнутые глаза, когда дело касается Emacs. Спасибо!