При редактировании кода Lisp иногда полезно полностью закомментировать определение верхнего уровня, например:
;(defun some-fn-which-is-broken (x)
; ...)
... или закомментируйте только часть s-выражения, например:
(foo x
; y
z)
... а затем перекомпилируйте файл и протестируйте что-нибудь в REPL и т.д.
При включенном режиме paredit это не работает. Вот что происходит, если точка находится прямо перед первым паролем ниже:
(defun some-fn (x)
...)
и вы вводите точку с запятой, то вводится точка с запятой и новая строка:
;
(defun some-fn (x)
...)
То же самое с закомментированием части s-выражения:
(foo x
;
y
z)
Я думаю, что если все определение находится в одной строке, это работает:
;(defparameter *foo* 10)
... но в остальном я не могу понять, как это сделать. Paredit великолепен, я бы очень хотел продолжать его использовать. Есть ли какие-нибудь Lispers, которые знают способ обойти это, или мастеров Emacs, которые могут немного поднять Emacs Lisp для привязки к чему-то вроде paredit-comment-out-s-expr
?
Если есть более Lispy или Emacsy способ выполнения по существу то же самое, комментируя части исходного кода для перекомпиляции, пожалуйста, не стесняйтесь предлагать их!