仅对一种模式(乳胶模式)禁用电凹痕模式


11

我不喜欢电子缩进模式在乳胶模式下的工作方式。在其他任何地方(至少在我使用的所有地方),都很棒。

我如何才能永久禁用仅用于乳胶模式的电压痕模式,而将其保留在其他位置?

我猜这是我的配置文件中的一行lisp hack或类似的东西,但是我对lisp感到恐惧,所以我无法弄清楚。

Answers:


8

您需要的命令是electric-indent-local-mode。您可以通过手动调用它来关闭任何缓冲区中的电子缩进模式M-x electric-indent-local-mode。这是一个切换,因此在同一缓冲区中再次调用它会再次将其重新打开。

要从您的init文件中自动执行此操作,您需要设置一个钩子。首先,定义钩子:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

然后将其添加到适当的模式挂钩。要为AUCTex提供的LaTeX模式关闭电子缩进模式,请使用以下命令:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

对于默认的texmode,请使用:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

您要关闭电子压痕的任何其他模式都适用相同的模式。

有关模式挂钩的更多详细信息,请参见内置的Emacs手册节点[(emacs) Hooks][1]。您可以通过C-h i r m Hooks <enter>:从Emacs到达那里:C-h获得帮助,i信息,r阅读手册,m菜单项以及Hooks选择菜单项。(或者您可以点击上面的链接查看html版本)。


您无需定义额外的功能:(add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))足够。
EmilJeřábek

的确如此,但是如果您定义一个函数,则可以在多个不同的钩子中重复使用它,而无需复制代码。与匿名函数相比,删除已定义的函数也更容易。这在调试时很有用
Tyler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.