【问题标题】:Indentation went crazy in Emacs Haskell Mode缩进在 Emacs Haskell 模式中变得疯狂
【发布时间】:2014-11-01 08:18:12
【问题描述】:

在最近一次全系统更新后,我注意到 Haskell 模式下的缩进变得非常奇怪:

import Data.Ratio
    _

下划线表示按下 Enter 后插入符号的位置,即在我的情况下为 4 列。实在是忍无可忍,因为每次按Enter都会跳到第4列。

我确信它与 Haskell 模式本身没有任何关系,因为它没有新的更新并且到目前为止它运行良好。但是,似乎有新版本的 Emacs:24.4,所以我想知道他们是否更改了会导致此错误的内容。

还有其他人遇到这个问题吗?您有任何解决方法的想法吗?

【问题讨论】:

  • 我什至没有看到新版本已经发布 - 感谢您指出这一点。我想我要等一段时间才能到 24.4
  • 这里有一个“编辑更改...缩进”部分:gnu.org/software/emacs/news/NEWS.24.4 - 我想知道这是否是罪魁祸首 - 你可以尝试禁用electric-indent-mode吗? (你知道M-x electric-indent-mode 并寻找结果
  • @CarstenKönig,是的,它禁用了这种行为!我将在我的“.emacs”中添加一些行以在启动时禁用它。
  • 我可以添加这个作为答案吗?
  • @CarstenKönig,当然,我很乐意接受!我已通过将(electric-indent-mode 0) 添加到我的.emacs 文件中来禁用该模式。

标签: haskell emacs


【解决方案1】:

似乎在 24.4 中引入了一种新的缩进模式 electric-indent-mode (见"Editing Changes ... Indentation" section here

您可以通过(对于会话)禁用

M-x electric-indent-mode

或添加类似的东西

(electric-indent-mode 0)

到您的.emacs 文件。

您也可以在 haskell-mode 上禁用它:

(add-hook 'haskell-mode-hook
          (lambda () (electric-indent-local-mode 0)))

【讨论】:

  • 与其希望高手能给出意见,你为什么不实际尝试一下呢?我很确定您很快就会发现它并没有按照您的想法做(每当您访问 haskell 文件时,它都会在全局范围内重新启用电子缩进模式)。
  • @Stefan 因为我的系统上没有这个版本的 emacs 并且基于此:gnu.org/software/emacs/manual/html_node/emacs/…可能工作,但对我来说不是 100% 清楚.但也许你可以告诉我如何获得一个禁用次要模式的主要模式的钩子,我会很乐意编辑答案 - 或者更好:做出你自己的答案,我会很高兴地投票并删除我的违规部分跨度>
猜你喜欢
  • 2017-10-15
  • 2021-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
相关资源
最近更新 更多