gpt4 book ai didi

emacs - 在haskell-mode 2.7中强制haskell-indent-mode超过haskell-indentation-mode?

转载 作者:行者123 更新时间:2023-12-04 01:57:57 31 4
gpt4 key购买 nike

我是一个 Emacs 用户,在配置编辑器方面没有任何技能。我从 haskell-mode 升级后从 2.4 到 2.7,我注意到两个变化:

  • 缩进在某种程度上是不同的,在某种程度上我不太喜欢。我不能完全确定它是什么。
  • 更重要的是:如果我启用了 cua 模式并突出显示一个文本 block ,退格/删除不会删除整个 block ,只是我标记中的上一个/下一个字符。

  • 我看到 haskell-mode 2.7 默认使用次要模式 haskell-indentation-mode,而 2.4 的行为以 haskell-indent-mode 的形式保留。如果我先关闭前者,然后再关闭后者,我想要的行为就会恢复(即缩进感觉就像以前一样,退格/删除删除突出显示的 block )。

    但是,当我打开带有 .hs 后缀的文件时,我无法自动执行此操作。我尝试了各种类似的东西
    (remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation-mode)
    (add-hook 'haskell-mode-hook 'turn-on-haskell-indent-mode)

    之类的,但我要么以标准模式结束,要么以没有缩进和文档的普通haskell模式结束。

    有任何想法吗?

    解决方案(感谢 nominolo) :
    (remove-hook 'haskell-mode-hook 'turn-on-haskell-indent)
    (remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
    (add-hook 'haskell-mode-hook 'my-haskell-mode-hook)
    (defun my-haskell-mode-hook ()
    (haskell-indentation-mode -1) ;; turn off, just to be sure
    (haskell-indent-mode 1) ;; turn on indent-mode
    )

    最佳答案

    配置这些东西的最好方法是编写一个自定义钩子(Hook):

    (add-hook 'haskell-mode-hook 'my-haskell-mode-hook)

    (defun my-haskell-mode-hook ()
    (haskell-indentation-mode -1) ;; turn off, just to be sure
    (haskell-indent-mode 1) ;; turn on indent-mode

    ;; further customisations go here. For example:
    (setq locale-coding-system 'utf-8 )
    (flyspell-prog-mode) ;; spell-checking in comments and strings
    ;; etc.

    )

    您也可以在其中粘贴一个匿名函数,但如果您想尝试一些设置,则使用命名函数会更容易。只需重新定义函数(并重新打开 Haskell 文件)即可获得新的行为。

    关于emacs - 在haskell-mode 2.7中强制haskell-indent-mode超过haskell-indentation-mode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887452/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com