当前位置:  开发笔记 > 开发工具 > 正文

在某些情况下,Emacs Clojure模式tab-indentation很大

如何解决《在某些情况下,EmacsClojure模式tab-indentation很大》经验,为你挑选了2个好方法。

我正在使用Emacs的Clojure模式与SLIME和swank-clojure.我有缩进问题.大多数时候缩进都是我想要的:当我按TAB时,它会缩进2个空格.但是,例如,在代理的情况下,我用TAB获得的缩进是巨大的:10个空格.例:

(defn- create-frame []
  (let [frame (JFrame. "Hello Swing")
        button (JButton. "Click Me")]
    (.addActionListener button
              (proxy [ActionListener] []
                        (actionPerformed [evt]

...

代理方法也是如此,例如上面的actionPerformed.

这个设置在哪里,我该如何更改?据我所知,它必须是Clojure模式的问题.



1> Trey Jackson..:

Clojure缩进基于lisp缩进,除非另有说明,否则缩进第二行以与函数的第一个参数对齐.以下行在前一行下缩进(假设嵌套没有变化).

例如

(some-function arg1 arg2 arg3
               arg4-on-second-line)

或者,当第一个参数在第二行时:

(some-function
 arg1
 arg2
 arg3 ...)

但是,如果修改变量lisp-indent-offset,这将覆盖上面解释的缩进方案,并强制第二行表达式缩进lisp-indent-offset比函数调用开始更多的列.

所以,也许下面的内容可以帮到你找到你想要的缩进:

(setq lisp-indent-offset 2)



2> ntalbs..:

在clojure模式中有"Always 2 spaces"选项.您可以通过在或中添加以下行来设置它..emacsinit.el

(setq clojure-defun-style-default-indent t)

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有