如何阻止emacs缩进javascript逗号分隔列表的第二行(例如数组或json)?

时间:2014-07-23 16:17:59

标签: javascript emacs

Emacs像这样缩进我的代码:

var myArray = [
    1,
        2,
        3,
        4,
        5,
    ];

而不是这样:

var myArray = [
    1,
    2,
    3,
    4,
    5,
];

我该如何防止这种情况?

M-x版本给我:2010-03-26的GNU Emacs 23.1.1(x86_64-pc-linux-gnu,GTK +版本2.18.3),由Debian修改的crested

遗憾的是,我无法更新我的emacs版本。

1 个答案:

答案 0 :(得分:2)

您似乎正在使用java-mode来编辑JavaScript代码。虽然Java和JavaScript共享足够的语法,但这可能没问题,但最好使用专用的JavaScript模式¹。

Emacs includes js-mode from version 23.2,这是一个非常好的基本JavaScript编辑模式。如果您可以升级Emacs,这可能是您最简单的选择。您也可以在Emacs 23.1上安装js-mode(或其前身espresso-mode)。这是latest version

或者,您可以使用像js2-mode这样的第三方模式,它实际上包含一个完整的JavaScript解释器。还有js3-mode,声称是

  

js2-mode和js-mode

的嵌合分支

我的Emacs 24.4中内置的js2-modejs-mode版本都会根据您的需要缩进示例代码:

var myArray = [
    1,
    2,
    3,
    4,
    5,
];

¹遗憾的是,仍有足够的混淆,值得说明Java和JavaScript是完全不同的语言。你可能已经知道了;我认为Emacs实际上拖欠了java-mode一段时间的JavaScript代码。