emacs 中的缩进配置 cider/paredit/clojure-mode

indent configurations in emacs cider/paredit/clojure-mode

在 Emacs/Cider 设置中(建立在 clojure-mode 和 paredit-mode 之上),制表位通常被忽略。或者,假设他们只缩进到 s 表达式的第二个符号。

有时,例如对于较大的配置,也需要缩进后续符号:

这将是默认值:

(def config [:hello 34 :goodbye
             :a 34 :c
             :long-word 0 :a])

要做什么,如果它看起来像:

(def config [:hello      34   :goodbye
             :a          34   :c
             :long-word  0    :a])

Emacs 不会按照您的意愿对齐 vector 中的元素,但是,您可以使用 M-i (tab-to-tab-stop) 插入制表符(或多个空格取决于您的配置)。所以你可以按照你喜欢的方式手动对齐元素。

如果您可以接受将配置作为地图而不是矢量,那么当您打开 clojure-mode 时,它​​会做正确的事情 clojure-align-forms-automatically:

(def config {:hello 34
             :goodbye [something else]
             :a [34 :c]
             :long-word 0
             :a 'b})

=>

(def config {:hello     34
             :goodbye   [something else]
             :a         [34 :c]
             :long-word 0
             :a         'b})