Vim autoindent(gg = G)因JS缩进而受到严重破坏

时间:2017-10-11 01:24:06

标签: javascript vim indentation eslint

我的最终目标是使用gg=G自动提交符合eslintrc.js文件的所有JS代码。

所以,目前我syntasticvim-javascript在我的.vimrc

中查看了我的JS代码
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',
}),
],
    };

哪个不酷。

顺便说一下,vim-js-indentvim-jsx-improve也没有做任何事情。

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

1 个答案:

答案 0 :(得分:2)

你的"不冷静"例子是" generic"当Vim没有将您的缓冲区识别为JavaScript和/或没有应用特定于JavaScript的缩进规则时,您会收到缩进。

使用此最小设置正确缩进代码:

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

其中:

  • 检测到您的缓冲区包含JavaScript,
  • 应用特定于JavaScript的缩进规则。

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

filetype indent on