Как сохранить все функции, которые я ввел в LispBox/Slime?

StackOverflow https://stackoverflow.com/questions/407658

Вопрос

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

Могу ли я сделать это?Спасибо.

Это было полезно?

Решение

Я согласен, что лучший метод рабочего процесса — писать код в отдельном буфере и оценивать его, а не вводить функции в repl.

Предполагая, что вы пошли по пути repl, я думаю, C.Решение Мартина — сохранить журнал повторов и просмотреть его вручную — ваш единственный вариант.

Если вы поместили функции и переменные в отдельный пакет, вы можете просмотреть символы в пакете, чтобы решить, что вы хотите сохранить.

Например.чтобы увидеть все символы, созданные в пакете 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)))

Другие советы

Я этого не понимаю.Вы вводите определения в REPL и планируете восстановить их позже?Просто сохраните исходный файл, как на любом другом языке.Используйте C-x 2, чтобы разделить окно Emacs на две части.Откройте исходный файл в одном из них C-x C-f foo.lisp.Используйте C-c C-k, C-c C-r и друзей (см. меню SLIME) для компиляции/оценки регионов вашего исходного кода в REPL.

Раньше я искал что-то подобное и не смог найти.Лучше всего записывать все свои определения в отдельный буфер и использовать обширные функции оценки/компиляции SLIME (C-c C-k загружает весь файл, C-x C-e оценивает последнее выражение, C-c C-r оценивает область и т. д.), только напрямую входя в вещи REPL, которые вы не хотите сохранять.

Хм, C-x o или C-x b чтобы добраться до буфера SLIME REPL, затем C-x w или C-x C-s чтобы сохранить его в файл.Все, что касается SLIME/CL, — это комментарии читателей;вы можете либо написать хак для чтения, чтобы перезагрузить файл, рассматривая подсказки как комментарии, либо вы можете просмотреть файл самостоятельно, чтобы захватить фрагменты, которые вы хотите сохранить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top