14

如何在 Emacs 中全局或仅在某些模式下禁用自动缩进?

我为 RubyOnRails 安装了许多软件包(ruby、html、js、css)。

假设我想禁用 css 模式的自动缩进。

4

2 回答 2

8

对我来说,在 emacs 24.x 上,M-xelectric-indent-mode切换了我想要禁用的行为。

FWIW,该行为被RET绑定到newline定义在simple.el...中的命令。除此之外,该命令的行为被改变electric-indent-mode

于 2016-03-01T23:54:50.000 回答
3

您可能想要查找包含单词的变量名electric。(这是 Emacs 常用的说法,即在键入特定可见字符时自动发生的操作。)

在这种情况下,M-x apropos-variable RET electric RET向我展示了一个css-electric-keys包含“应触发重新缩进的自插入键”列表的变量。

您可以使用M-x customize-variable RET css-electric-keys RET将此列表设置为 nil,或添加(setq css-electric-keys nil)到您的 init 文件中。

有时使用次要模式来实现电行为,以便您可以更轻松地打开和关闭它们。这些可能会通过 找到M-x apropos-command RET electric RET,并且您可能会使用主要模式挂钩来确保禁用电动次要模式,其方式与此类似:

(add-hook 'MAJORMODE-mode-hook 'my-MAJORMODE-mode-hook)
(defun my-MAJORMODE-mode-hook ()
  (ELECTRICMODE-mode 0))
于 2010-12-09T10:38:59.230 回答