Vim autoindent(gg = G)对于JS缩进来说非常破碎

问题描述:

我的最终目标是使用gg=G自动缩进符合eslintrc.js文件的所有JS代码。Vim autoindent(gg = G)对于JS缩进来说非常破碎

所以,目前我有syntasticvim-javascript看着我的JS代码,在我的.vimrc

let g:syntastic_javascript_checkers=["eslint"] 

下面让我们说,我有一些体面的JS像下面

const path = require('path'); 

const HtmlWebpackPlugin = require('html-webpack-plugin'); 

const PATHS = { 
    app : path.join(__dirname, 'app'), 
    build : path.join(__dirname, 'build'), 
}; 

const commonConfig = { 
    entry : { 
    app : PATHS.app, 
    }, 
    output : { 
    path : PATHS.build, 
    filename : '[name].js', 
    }, 
    plugins : [ 
    new HtmlWebpackPlugin({ 
     title : 'Webpack Demo', 
    }), 
    ], 
}; 

gg=G (正常模式)命令将以上内容切断。

const path = require('path'); 

const HtmlWebpackPlugin = require('html-webpack-plugin'); 

const PATHS = { 
app : path.join(__dirname, 'app'), 
     build : path.join(__dirname, 'build'), 
}; 

const commonConfig = { 
entry : { 
app : PATHS.app, 
     }, 
output : { 
path : PATHS.build, 
     filename : '[name].js', 
     }, 
plugins : [ 
       new HtmlWebpackPlugin({ 
title : 'Webpack Demo', 
}), 
], 
    }; 

哪个不酷。

Btw,vim-js-indentvim-jsx-improve也没有做任何事情。

任何帮助非常欢迎,非常感谢提前。

您的“不酷”示例是Vim无法将您的缓冲区识别为JavaScript和/或未应用JavaScript特定缩进规则时得到的“通用”缩进结果。

该代码与这个最小安装正确缩进:

$ vim -Nu NONE --cmd 'filetype indent on' filename.js 

其中:

  • 检测到您的缓冲区包含的JavaScript,
  • 适用JavaScript的具体缩进规则。

为了确保正确的缩进,则必须将此行添加到您的vimrc

filetype indent on 
+0

我很惭愧它是如此简单!奇怪的部分是缩进与其他文件类型很好。哦,我的世界现在是一个更好的地方。 – FinnM