在emacs中添加新代码时重新缩进lisp代码
假设我有这个:在emacs中添加新代码时重新缩进lisp代码,emacs,lisp,common-lisp,Emacs,Lisp,Common Lisp,假设我有这个: (defun foo () (format t "hello there")) 然后我意识到我遗漏了算法中至关重要的部分,我在这里添加了它: (defun foo () (let ((x 0)) (format t "hello there"))) 如您所见,emacs正确地缩进了新代码,但是已经存在的代码行不会自动更新,以反映它们的缩进相对于后来添加的其他代码行的位置 有没有办法强制更新缩进?在这种情况下:C-M-a移动到defun,C-M-q缩进函数
(defun foo ()
(format t "hello there"))
然后我意识到我遗漏了算法中至关重要的部分,我在这里添加了它:
(defun foo ()
(let ((x 0))
(format t "hello there")))
如您所见,emacs正确地缩进了新代码,但是已经存在的代码行不会自动更新,以反映它们的缩进相对于后来添加的其他代码行的位置
有没有办法强制更新缩进?在这种情况下:C-M-a移动到
defun
,C-M-q缩进函数。如果您还没有,它也可能会对签出感到愤怒。这需要一些时间来适应(我觉得在最初的几天里我一直在努力),但这让我感觉你更像是在处理结构而不是文本
对我来说,我只需标记代码并点击tab键,就可以正确缩进。不过,我不确定这是一个paredit事件还是标准的emacs行为。也许吧?@tripleee我收到了神奇的答案Beautiful!!正是我需要的我没有安装paredit,但我尝试了你的标记文本和制表符技巧,效果很好,谢谢,有用!