Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs在Clojure中自动缩进-是否像CL?_Emacs_Clojure_Common Lisp_Auto Indent - Fatal编程技术网

Emacs在Clojure中自动缩进-是否像CL?

Emacs在Clojure中自动缩进-是否像CL?,emacs,clojure,common-lisp,auto-indent,Emacs,Clojure,Common Lisp,Auto Indent,Emacs以以下方式自动缩进Clojure代码: (defn foo [x] (if (= 0 x) 0 1)) 我更喜欢它是否像Scheme和CL那样: (defn foo [x] (if (= 0 x) 0 1)) 如何更改.el文件以实现这一点?我没有真正测试这一点,但它似乎可以工作(在clojure模式下): 由于我无法在注释中执行代码块: Elisp没有以您提到的任何一种方式缩进: (if (test-p foo) bar

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

(defn foo [x]
  (if (= 0 x)
    0
    1))
我更喜欢它是否像Scheme和CL那样:

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

如何更改.el文件以实现这一点?

我没有真正测试这一点,但它似乎可以工作(在clojure模式下):


由于我无法在注释中执行代码块:

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

(if (test-p foo)
    bar
  baz)

公共lisp模式也以这种方式缩进。Scheme模式将它们排成一行。

我也不喜欢这种缩进样式。我认为Lisps中的缩进应该是语法级的,而不是语义级的,即始终与上面的项目对齐。(但我可能是唯一一个)这是个人偏好,但我非常建议你习惯第一种。这是Clojure社区的其他成员所使用的。Emacs 23.4.1似乎附带了一个通用的Lisp模式,它也将所有这些模式排列在一起。对我来说很有用。只要把它放进我的
.emacs
(if (test-p foo)
    bar
  baz)