如何修复emacs 24中的javascript模式更改?

如何修复emacs 24中的javascript模式更改?,emacs,Emacs,我最近从emacs 23升级到emacs 24。使用默认js模式使用JavaScript时,我注意到emacs23中的js模式与emacs24中的js模式之间有一个微小但令人讨厌的区别。为了确保这不是我的设置之一,我使用--no init file选项启动了emacs23和emacs24,我看到了相同的问题,即: 在js模式下的emacs23中,当您键入右大括号时,},它会临时将光标跳回匹配的右大括号,然后将右大括号缩进到适当的缩进级别 在emacs24中执行此操作时,临时光标会按预期跳转到匹配

我最近从emacs 23升级到emacs 24。使用默认js模式使用JavaScript时,我注意到emacs23中的js模式与emacs24中的js模式之间有一个微小但令人讨厌的区别。为了确保这不是我的设置之一,我使用
--no init file
选项启动了emacs23和emacs24,我看到了相同的问题,即:

在js模式下的emacs23中,当您键入右大括号时,
}
,它会临时将光标跳回匹配的右大括号,然后将右大括号缩进到适当的缩进级别

在emacs24中执行此操作时,临时光标会按预期跳转到匹配的开始大括号,但它不会缩进结束大括号,使我按tab键完成此操作

还有其他人看到这种差异吗?如果是的话,有没有关于如何修复的想法?在我的init.el中是否有一个很好的“缩进关闭卷曲”类型的变量

我在Xubuntu Linux上使用emacs(我是从源代码安装的)。我还没有在其他平台上比较23和24


注意:有人可能会建议使用Yegge的js2模式,但我通常不喜欢使用它,希望js模式能够正常工作。

因为我找到了一个令人满意的答案,而且没有其他人的消息,所以我会发布我的答案,并接受它,以防对其他人有所帮助

我没有找到js模式在emacs 23和emacs 24中表现不同的确切原因,但是在.emacs或init.el中设置
electric indent mode
可以提供我想要的行为。这样,在你输入右大括号之前,它实际上是缩进的,但这对我来说是可行的。这是emacs 24中的一个新设置。您的.emacs条目将是:

(电子缩进模式t)
我遇到的一个问题是,组织模式不喜欢电子缩进模式,所以您可以专门为javascript/java/c/etc.modes设置电子缩进模式,或者专门为组织模式取消设置。我选择后者是因为:

(取消组织模式挂钩()
(电缩进模式-1))
(添加钩子“组织模式钩子”我的组织模式钩子)
谢谢你,midpeter444。(电子缩进模式t)工作起来像个符咒。 我在谷歌上搜索过,有人建议将js自动缩进标志设置为非nil,它在我的Emacs 24.3上不起作用,即使有一个js自动缩进标志变量可以通过“customize group js”自定义,也没有效果。我发现java.el没有使用它,尽管它是在源代码中声明的