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

Posted

技术标签:

【中文标题】如何修复 emacs 24 中的 javascript 模式更改?【英文标题】:How can I fix a javascript-mode change in emacs 24? 【发布时间】:2012-07-05 01:36:27 【问题描述】:

我最近从 emacs 23 升级到 emacs 24。使用默认的 js-mode 使用 javascript,我注意到 emacs23 与 emacs24 中的 js-mode 之间存在细微但令人讨厌的差异。为了确保它不是我的设置之一,我使用 --no-init-file 选项启动了 emacs23 和 emacs24,我看到了同样的问题,即:

在 js-mode 的 emacs23 中,当您键入右大括号 时,它会暂时将光标跳回匹配的左大括号,然后 缩进右大括号到适当的位置缩进级别。

当我在 emacs24 中执行此操作时,临时光标跳转到匹配的左大括号按预期发生,但它确实 缩进右大括号,使我按 Tab 键完成工作.

还有其他人看到这种差异吗?如果是这样,关于如何解决它的任何想法?在我的 init.el 中的某处是否有很好的“缩进闭合卷曲”类型的变量?

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

注意:有人可能会建议改用 Yegge 的 js2-mode,但我一般不喜欢使用它,希望让 js-mode 正常工作。

【问题讨论】:

【参考方案1】:

由于我找到了一个令人满意的答案并且没有收到任何其他人的消息,我将发布我的答案并接受它以防它帮助其他人。

我没有找到 js-mode 在 emacs 23 和 emacs 24 中表现不同的确切原因,但是在 .emacs 或 init.el 中设置 electric-indent-mode 会给出我想要的行为。有了这个,它实际上会在您键入右大括号之前缩进 ,但这对我有用。这是 emacs 24 中的新设置。您的 .emacs 条目将是:

(electric-indent-mode t)

我遇到的一个问题是org-mode不喜欢electric-indent-mode,所以你可以专门为javascript/java/c/etc设置electric-indent-mode。模式或专门为组织模式取消设置。我选择了后者:

(defun my-org-mode-hooks ()
  (electric-indent-mode -1))

(add-hook 'org-mode-hook 'my-org-mode-hooks)

【讨论】:

【参考方案2】:

谢谢你,midpeter444。 (electric-indent-mode t) 就像一个魅力。 我用谷歌搜索过,有人建议将 js-auto-indent-flag 设置为非 nil,它在我的 Emacs 24.3 上不起作用,即使确实有一个 js-auto-indent-flag 变量可以通过'customize-组js',它没有效果。我发现 java.el 并没有使用它,虽然它是在源代码中声明的。

【讨论】:

以上是关于如何修复 emacs 24 中的 javascript 模式更改?的主要内容,如果未能解决你的问题,请参考以下文章

在新的 Emacs 24.3 中调整术语面

终端 Emacs 中的真彩色(24 位)

在Windows 7的Emacs 24.3.1中,如何在dired中首先对目录进行分组?

如何在安装在gentoo的emacs 24中设置字体大小

更改emacs中的字体设置[重复]

如何更改分屏emacs窗口的大小?