在编辑Lisp代码时,有时完全注释掉顶级定义是有用的,如下所示:
;(defun some-fn-which-is-broken (x)
; ...)
Run Code Online (Sandbox Code Playgroud)
...或只注释一个s表达式的一部分,如下所示:
(foo x
; y
z)
Run Code Online (Sandbox Code Playgroud)
...然后重新编译文件并在REPL中测试一些东西等.
启用paredit-mode后,这不起作用.如果该点恰好在下面的第一个paren之前,那么会发生什么:
(defun some-fn (x)
...)
Run Code Online (Sandbox Code Playgroud)
并键入分号,输入的是分号和换行符:
;
(defun some-fn (x)
...)
Run Code Online (Sandbox Code Playgroud)
与注释掉部分s表达式相同:
(foo x
;
y
z)
Run Code Online (Sandbox Code Playgroud)
我认为,如果定义全部在一行,这有效:
;(defparameter *foo* 10)
Run Code Online (Sandbox Code Playgroud)
...但否则我无法知道如何做到这一点.Paredit很棒,我真的很想继续使用它.是否有任何Lispers知道解决这个问题的方法,或者Emacs -wizards谁可以掀起一些Emacs Lisp绑定到类似的东西paredit-comment-out-s-expr?
如果有更多的Lispy或Emacsy方法完成基本相同的事情,请注释掉部分源代码以重新编译,请不要犹豫,建议它们!