2017-10-11 61 views
1

我的最終目標是使用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也沒有做任何事情。

任何幫助非常歡迎,非常感謝提前。

回答

2

您的「不酷」示例是Vim無法將您的緩衝區識別爲JavaScript和/或未應用JavaScript特定縮進規則時得到的「通用」縮進結果。

該代碼與這個最小安裝正確縮進:

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

其中:

  • 檢測到您的緩衝區包含的JavaScript,
  • 適用JavaScript的具體縮進規則。

爲了確保正確的縮進,則必須將此行添加到您的vimrc

filetype indent on 
+0

我很慚愧它是如此簡單!奇怪的部分是縮進與其他文件類型很好。哦,我的世界現在是一個更好的地方。 – FinnM