Emacs Erlang模式缩进两次erlang-indent-level指定的内容

Way*_*rad 2 emacs erlang indentation emacs23

Emacs让我的Erlang缩进两倍,就像我想的那样.

如果我将erlang-indent-level设置为2,则缩进为4:

fun(Keys, Values, ReReduce) ->
    lists:sum(Values)
end.
Run Code Online (Sandbox Code Playgroud)

如果我将erlang-indent-level设置为4,则缩进为8:

fun(Keys, Values, ReReduce) ->
        lists:sum(Values)
end
Run Code Online (Sandbox Code Playgroud)

我已经使用"od -c"验证了我的Erlang文件中没有制表符.

为什么缩进级别是erlang-indent-level设置的两倍?


我的.emacs部分与缩进有关:

(custom-set-variables
 '(indent-tabs-mode nil)
 ...

; Set to 2 in order to get 4
(setq erlang-indent-level 2)
Run Code Online (Sandbox Code Playgroud)

版本:

  • GNU Emacs 23.2.1
  • 来自Debian软件包的erlang.el"erlang-mode"版本1:14.a-dfsg-3

Lin*_*cer 6

这是因为"有趣"是一个特殊的关键词.如果将函数命名为其他函数,它将按预期缩进函数.

  • 就个人而言,我更喜欢它缩进到'erlang-indent-level`.我没有看到双缩进的重点,一切都很快就向右偏移. (3认同)
  • 罗伯特?好久不见!因为我在过去的十五年里一直远离Erlang世界,所以我不记得为什么缩进变成了它的样子.我认为这是因为如果额外的缩进级别不存在,某些构造会出错,但也许有可能找到一个好的折衷方案--Anders (3认同)
  • 好吧,这就是我选择在erlang.el中实现的方式.很高兴看到周围仍有人使用它! (2认同)