我怎么能让Vim得到这个JS缩进权?

时间:2014-08-12 14:20:18

标签: javascript vim indentation auto-indent

Emacs用户在这里,让Vim去吧。 :)

我非常喜欢快速按键和整体音乐,但是我用稍微高级的东西遇到了一些麻烦。我的一个抱怨是缩进(使用=命令)。

请参阅此JS代码段。这就是Emacs' js2-mode缩进它。我喜欢这个:

var MyClass = declare([], {
    constructor: function(params) {
        if(!params) {
            params = {};
        }

现在这就是Vim用它做的事情。受诅咒'地狱:

       var MyClass = declare([], {
constructor: function(params) {
if(!params) {
params = {};
}

这个结构上面的所有代码都得到了很好的缩进,但是从那里开始它简直太糟糕了。而且我的代码中有这种结构。我已经检查了:filetype并打开了这些开关。我曾尝试使用和不使用插件。没有做对。 Vim是gVim 7.4,几天前下载。我看过this question,其中显示的代码段正确地缩进了。

有没有人知道我在这里可以尝试什么? 谢谢你的建议!

2 个答案:

答案 0 :(得分:1)

.vimrc

set  nocompatible " vi is decades old

set expandtab     " use soft tabs set shiftwidth=2  # 2 spaces tabs for JS (?) set softtabstop=2

filetype on 
filetype plugin on 
filetype plugin indent on " auto indent for supported languages (JS included)

要重新格式化所有文件,请键入gg=G

gg -> go to top of file
= -> indent 
G -> until the end of the file

答案 1 :(得分:0)

我是>的VIM用户10年,我使用this Javascript语法插件。我通过

测试了缩进

1:创建新文件并设置文件类型

:set filetype=javascript

2:粘贴您的(格式错误的)代码

3:击中gg = G(格式化完整缓冲区)

结果代码对我来说很有用:

var MyClass = declare([], {
  constructor: function(params) {
    if(!params) {
      params = {};
    }