代码之家  ›  专栏  ›  技术社区  ›  mcandre

SLIME是否有快捷键在SLIME模式下注释Lisp代码块?

  •  3
  • mcandre  · 技术社区  · 15 年前

    我不想在每一行都手动添加分号。

    规格:

    水彩画2.1(Emacs 23.2)

    煤泥2010-11-16

    MacPorts客户端2.49

    Mac OS X 10.6.4版

    MacBook Pro 5,1版

    2 回复  |  直到 15 年前
        1
  •  4
  •   avp    14 年前

    如果代码块是一个Lisp表单,并且您希望将此表单注释掉,则可以使用 slime-insert-balanced-comments (我使用 M-x型 s-i-b-c公司 SLIME会自动扩展命令)。 取消注释使用 slime-remove-balanced-comments ( M-x型 s-r-b-c型 ).

    我发现这些命令非常有用。

    另外,我在.emacs文件中放置了以下块:

    ;; Comment function
    (defun comment-or-uncomment-this (&optional lines)
       (interactive "P")
       (if mark-active
          (if (< (mark) (point))
             (comment-or-uncomment-region (mark) (point))
             (comment-or-uncomment-region (point) (mark)))
          (comment-or-uncomment-region
             (line-beginning-position)
             (line-end-position lines))))
    
    (global-set-key (kbd "C-;") 'comment-or-uncomment-this)
    

    我想,是从 here .

    升级版 :尽管事实上 slime-insert/remove-balanced-comments 与paredit合作很好 C-; 在括号数目不均的行上使用命令可能会非常麻烦。如果是这样的线

    ((blah|-blah)))))))
    

    (其中 | 意思是,我先按 ) 在正确的位置打断该行并从该行分离外部右括号所需的次数(在本例中为两次)。Paredit在这里有帮助:它重新组织s-exp,使右括号分成两部分,因此您可以在不打断外部s-exp的情况下注释行。在最后一个示例中,该行变为:

      ((blah-blah))
    |)))))
    

    第一行可以用 C-; .

        2
  •  3
  •   icyrock.com    15 年前

    看这里:

    它是 M-x comment-region ,但没有默认的密钥绑定。