когда я запускаю функцию в repl, repl становится местом для ввода пользовательских значений.
Например:
(defun asking-questions ()
(let ((firstname (prompt-read "What is the firstname of the contact?"))
(email (prompt-read "What is their email?"))
(company (prompt-read "What is the company name?"))
.... ))
(defun prompt-read (question)
(format *query-io* "~a: " question)
(force-output *query-io*)
(read-line *query-io*))
Иногда я хочу «чисто» закрыть программу на полпути, потому что я экспериментирую с вводом email
(например.
Мой желаемый результат — нажать набор клавиш, которые позволят мне вернуться к package>
. Как мне это сделать?
Я использую emacs + SBCL.
Это правильный ответ. Можете ли вы добавить это как ответ, пожалуйста? Спасибо за рекламу
C-c C-c
(тогда q
) тоже работает.
Если вы используете Slime с emacs, вы можете нажать C-cC-b, чтобы перейти в отладчик, где вы можете прервать программу, выбрав соответствующий перезапуск.
Для полноты, в терминале, непосредственно взаимодействующем с REPL, команда прерывания C-c должна привести вас к отладчику, где вы можете прервать вычисления до цикла верхнего уровня.
Если вы используете Slime
C-c C-b
, вы попадете в отладчик, и вы сможете прервать программу оттуда, выбрав соответствующий перезапуск.