Emacs + js2-mode:完全禁用缩进?

Phi*_*ham 12 javascript emacs js2-mode

我正在使用js2-mode在emacs中使用javascript,并且在大多数情况下它非常有用.但是,在使用jQuery,闭包和JSON时,缩进方法非常令人沮丧...例如,我希望缩进的代码如下所示:

var foo = jQuery('#mycontainer ul li').each(function(el){
    var bar = el.html();
});
Run Code Online (Sandbox Code Playgroud)

结果如下:

var foo = jQuery('#mycontainer ul li').each(function(el){
                                          var bar = el.html();
                                       });
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以关闭所有缩进的"帮助器",只有当我按Tab键时,emacs插入N个空格?我知道手动缩进是一个倒退,但有可读代码,恕我直言,比一个不能按预期工作的工具更有用.

Dmi*_*try 6

没有直接回答你的问题,但这里是一个叉js2-mode具有改进的缩进.

其中一项改进是您的示例代码以您在此处提出的方式缩进.


jro*_*way 5

我想我会把这个完整的答案而不是评论; espresso-mode包含在Emacs中,旨在成为Emacs的Javascript模式(而不是恰好在Emacs中运行的Javascript模式).它像常规编程模式一样工作,也可以按照你喜欢的方式缩进.

  • 当你可以使用@AntonJ提供的链接(http://mihai.bazon.net/projects/editing-javascript-with-emacs-js2-mode)时,我认为不值得抛弃js2模式的所有优点.充分利用这两个世界.我一直在使用它,并且没有任何遗憾. (2认同)

ant*_*onj 5

查看此解决方案,将 js2-mode 中的缩进功能映射到部分使用 esresso-mode 中的缩进(现在称为 emacs 23.2 及更高版本中包含的 js-mode):

http://mihai.bazon.net/projects/editing-javascript-with-emacs-js2-mode

完全按照我期望的 emacs 中的缩进来工作,并且您仍然可以从 js2-mode 中获得出色的解析能力。