При редактировании кода на Лиспе иногда полезно полностью закомментировать определение верхнего уровня, например:
;(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)
... но в противном случае я могуне узнать, как это сделать.Паредит великолепен, я бы очень хотел его использовать.Есть ли Лисперы, которые знают способ обойти это, или Emacs-волшебники, которые могут поднять немного Emacs Lisp для привязки к чему-то вроде paredit-comment-out-s-expr
?
Если есть более лиспийский или Emacsy способ выполненияпо сути то же самое, комментируя части исходного кода для перекомпиляции, пожалуйста, не стесняйтесь их предлагать!