我最近从emacs 23升级到emacs 24.使用默认的js-mode使用JavaScript,我注意到emacs23与emacs24中的js-mode之间存在轻微但烦人的差异.为了确保它不是我的设置之一,我启动了emacs23和emacs24 --no-init-file选项,我看到了同样的问题,即:
在js-mode的emacs23中,当您键入一个结束大括号时},它会暂时将光标跳回到匹配开口大括号,然后将右大括号缩进到适当的缩进级别.
当我在emacs24做到这一点,发生临时光标跳到与之匹配的大括号如预期,但它并没有缩进右括号,让我按下TAB键来完成这项工作.
还有其他人看到这种差异吗?如果是这样,有关如何修复它的任何想法?在我的init.el中设置某个地方是否有一个很好的"缩进 - 收尾 - 卷曲"类型的变量?
我在Xubuntu Linux上使用emacs(我从源代码安装).我还没有在其他平台上比较23和24.
注意:有人可能想建议使用Yegge的js2-mode,但我通常不喜欢使用它,并希望让js-mode正常工作.
quu*_*x00 11
由于我找到了一个令人满意的答案而且没有其他人的回复,我会发布我的答案并接受它,以防它帮助其他任何人.
我没有找到js-mode在emacs 23与emacs 24中表现不同的确切原因,但electric-indent-mode在.emacs或init.el中的设置给出了我想要的行为.有了这个,它实际上在你输入右括号之前缩进,但这对我有用.这是emacs 24中的新设置.您的.emacs条目将是:
(electric-indent-mode t)
Run Code Online (Sandbox Code Playgroud)
我遇到的一个问题是org-mode不喜欢电子缩进模式,所以你可以为javascript/java/c/etc专门设置电子缩进模式.模式或专门为组织模式取消设置.我选择了后者:
(defun my-org-mode-hooks ()
(electric-indent-mode -1))
(add-hook 'org-mode-hook 'my-org-mode-hooks)
Run Code Online (Sandbox Code Playgroud)