Emacs Cider/Paredit/Clojure-Mode中的缩进配置

3
在 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])

2
你的配置是一个向量吗?如果它是一个映射,那么clojure-align应该能够胜任。 - OlegTheCat
不错,这对于地图很好用。但实际上我也需要它用于向量... - Anton Harald
2个回答

0

Emacs 无法根据你的意愿对向量中的元素进行对齐,但是,你可以使用M-itab-to-tab-stop)来插入制表符(或多个空格,这取决于你的配置)。因此,你可以手动按照自己喜欢的方式对齐元素。


很好的事情!如果clojure-align能够增强以适用于任何集合,那将更加完美。https://github.com/clojure-emacs/clojure-mode/blob/464c9de6734cb4b426137674041d695c2a7c7ef9/clojure-mode.el#L973 - Anton Harald
请随意提交工单。我们没有考虑过这样的用例,但是我们可能会在未来实现它。 - Bozhidar Batsov

0

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

(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})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接