2016-08-19 64 views
1

在Emacs/Cider設置(它建立在clojure模式和paredit模式之上)時,通常會忽略製表位。或者,他們只是縮進s表達式的第二個符號。emacs cider/paredit/clojure-mode中的縮進配置

有時候,例如,對於較大的配置,這還期望縮進隨後的符號:

這將是默認:

(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](https://github.com/clojure-emacs/clojure-mode#vertical-alignment)應該完成這項工作。 – OlegTheCat

+0

不錯,這對地圖很有用。但實際上我需要它的載體以及... –

回答

0

Emacs不會根據需要對齊矢量中的元素,但是,您可以使用M-itab-to-tab-stop)插入選項卡(或多個空間取決於你的配置)。所以你可以像你喜歡的方式手動對齊元素。

+0

這是很好的!如果clojure-align得到增強,可以與任何收藏一起使用,那將會更好。 https://github.com/clojure-emacs/clojure-mode/blob/464c9de6734cb4b426137674041d695c2a7c7ef9/clojure-mode.el#L973 –

+0

隨意提交一張票。我們沒有考慮這樣的用例,但我們可能在未來實現它。 –

0

如果你可以與具有您的配置作爲一個地圖,而不是一個向量,Clojure的模式生活確實,當你打開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})