【问题标题】:Emacs auto-indent in Clojure - Do it like CL?Clojure 中的 Emacs 自动缩进 - 它像 CL 吗?
【发布时间】:2011-12-28 23:59:56
【问题描述】:

Emacs 以下列方式自动缩进 Clojure 代码:

(defn foo [x]
  (if (= 0 x)
    0
    1))

我希望它像 Scheme 和 CL 那样做:

(defn foo [x]
  (if (= 0 x)
      0
      1))

如何更改我的 .el 文件以实现此目的?

【问题讨论】:

  • 我也不喜欢这种缩进样式。我认为 Lisps 中的缩进应该是语法级别的,而不是语义级别的,即始终与上面的项目对齐。 (但我可能是唯一的)
  • 这是个人喜好的事情,但我非常建议你习惯第一个。这是 Clojure 社区的其他成员使用的。

标签: emacs clojure common-lisp auto-indent


【解决方案1】:

我并没有真正对此进行测试,但它似乎可以工作(在 clojure 模式下):

(put 'if 'clojure-indent-function 3)

【讨论】:

  • 为我工作。只需将其放入我的.emacs
【解决方案2】:

因为我不能在 cmets 中做代码块:

Elisp 没有以您提到的任何一种方式缩进:

(if (test-p foo)
    bar
  baz)

Common-lisp-mode 也以这种方式缩进。 Scheme-mode 将它们全部排列起来。

【讨论】:

  • Emacs 23.4.1 似乎附带了一个 Common Lisp 模式,它也将它们全部排列起来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
相关资源
最近更新 更多