2011-02-06 84 views
11

例如,如果我要评论此:lisp on emacs:如何评论多行表达式?

(defun noop() 
    nil) 

每次我尝试了“(defun定义”之前把一个分号,在defun定义逃跑到下一行,那么如何实现这应该是?做

GNU Emacs的23.1.1

编辑:由“出走”我的意思是,当我前插入一个分号“(defun函数”,一个换行符被自动分号后插入“(defun定义”开始于又一条新线

+2

它为我,这里没有逃跑。你是说,当你插入之前“(defun定义”一个分号,换行符被自动和“(defun定义”开始一个新行后,再次插入这将是很奇怪的;它既不是我的emacs版本的发生(GNU Emacs 22.1和基于GNU Emacs 22.3.1的Aquamacs Emacs) – joriki 2011-02-06 17:25:52

+0

是的,它就是这样发生的GNU Emacs 23.1.1。 – Ron 2011-02-06 17:29:35

+2

你很可能已经安装了predit – Svante 2011-02-06 17:33:08

回答

5

Ron,做一个CTRL-H m并观察次要模式。你有一些“有用的”小模式活动。 (也许paredit,但我不认为就是这样。)我记得当我尝试EMACS入门套件时有类似的情况。它持续了也许30秒之前我尖叫,发现如何杀死它。

在任何情况下,这不是默认的EMACS行为,它是一些init-file或site-emacs的补充。

11

M-x评论区及相关。

5

将两条线都标出并拨打M-x comment-region。另请看comment-or-uncomment-regioncomment-dwim的功能。

5

M-X comment-dwimM-;,这是默认键为前结合 - 可能会节省你按几下按键,因为它不仅评论,但取消注释区域,如果它已经评论。无论如何,检查出Emacs Manual为正确的描述。

2

如果你在谈论的Common Lisp(而不是说,与Emacs Lisp的),你可以使用#+(or)

#+(or) 
(defun noop() 
    nil) 

CLHS了解详情。

2

对于在标题要求特定的任务(评论说,可以跨多行一次完整的表达),初回C-M-SPC(绑定到mark-sexp)设置如下点的区域来表达,然后M-;(绑定到comment-dwim,将调用comment-region)。

1

有点迟到了,但是,怎么样:

(defmacro comment (&rest a))