2012-07-10 43 views
22

我是Clojure的新手,也是Emacs的新手。如何在Emacs中智能地重新缩进Clojure?

是否有一个Emacs的捷径来智能地重新缩进整个文件? 如果不是,是否至少有一种方法可以将选定区域向左或向右缩进?

我觉得我回到了石器时代反复按箭头

回答

31

Ç - X^h选择整个缓冲区。 C - M - \重新选择所选区域。

+5

''C-M-q'运行'indent-sexp',我也发现它非常有用,尤其是与'defun的开始'(它位于'C-M-a'上)相结合。 – Hugh 2012-07-11 02:43:45

+16

使用paredit模式,您只需按下“M-q”键,即可在不移动点的情况下重新启动整个defun。 – amalloy 2012-07-11 05:55:05

+2

nitpick。,其用于选择整个缓冲区的'C-x h' – kindahero 2012-07-11 14:42:15

10

Ctrl键 - Xħ(选择所有),随后标签(缩进)

4

苹果酒格式-buffer命令(由于苹果酒0.9.0)

1

当您从一个像C-u C-c C-ecider-eval-last-sexp)这样的序列中捕获数据,输出到缓冲区的原始数据可能是难以检查/使用的 。而正常的代码缩进命令 (在这里的答案中提到)处理不好。

要处理来自此类评估表达式的结果,请尝试使用 cider-format-edn-region

作为一个具体的例子,你有没有试过重新格式化你的 ~/.lein/profiles.clj?这是很难做到,并保持 一致,直到你发现cider-format-edn-region。以 请注意,它会,但是,删除任何评论。

+0

因为使用'paredit'和'aggressive-indent',我从来没有发现我的'profiles.clj'很难重新格式化。这种方法的优点是不删除评论,我有很多。 – 2016-12-27 16:46:38