在emacs中添加新代码时重新缩进lisp代码

时间:2013-10-29 09:14:20

标签: emacs lisp common-lisp

说我有这个:

 (defun foo ()
   (format t "hello there"))

然后我意识到我遗漏了算法中至关重要的部分,我在这里添加它:

 (defun foo ()
   (let ((x 0))
   (format t "hello there")))

正如您所看到的,emacs正确地缩进新代码,但是已经存在的行不会自动更新以反映其缩进应该与稍后添加的其他代码行相关的位置。

有没有办法强制更新缩进?

2 个答案:

答案 0 :(得分:2)

如果你还没有,也可能会发现paredit。它需要一些使用(我觉得我在最初几天与它斗争)但它让你感觉更像是在使用结构而不是文本。

对我来说,我只需标记代码并点击标签即可正确缩进。我不确定这是否是一个简单的事情,或者只是标准的emacs行为。

答案 1 :(得分:0)

在这种情况下:C-M-a移动到defun,C-M-q缩进函数。