在编辑 Lisp 代码时,有时完全注释掉顶级定义很有用,如下所示:
;(defun some-fn-which-is-broken (x)
; ...)
...或仅注释掉 s 表达式的一部分,如下所示:
(foo x
; y
z)
...然后重新编译文件并在 REPL 中测试某些内容等。
启用 paredit-mode 后,这不起作用。如果该点正好在下面的第一个括号之前,则会发生以下情况:
(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 方式来完成基本相同的事情,请注释掉部分源代码以重新编译,请不要犹豫,建议他们!