Vim autoindent (gg=G) ужасно сломан для отступа JS
Моя конечная цель здесь заключается в использовании gg=G
для автоматического встраивания всего моего кода JS, соответствующего eslintrc.js
файл.
Итак, в настоящее время у меня есть syntastic
а также vim-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-indent
а также vim-jsx-improve
тоже ничего не делал
Любая помощь очень приветствуется, большое спасибо заранее.
1 ответ
Ваш "не крутой" пример является результатом "общего" отступа, который вы получаете, когда Vim не распознает ваш буфер как JavaScript и / или не применяет специфичные для JavaScript правила отступа.
Этот код правильно с отступом с этой минимальной настройкой:
$ vim -Nu NONE --cmd 'filetype indent on' filename.js
который:
- обнаруживает, что ваш буфер содержит JavaScript,
- применяет специфичные для JavaScript правила отступов.
Для обеспечения правильного отступа необходимо добавить эту строку в vimrc
:
filetype indent on