如何让 Airbnb 的 JavaScript 风格的 eslint 指南在 vim 中使用 react,es6?

How to get Airbnb's JavaScript style eslint guide working in vim with react, es6?

我是 vim 的新手,开始一个新的 javascript 项目,编辑器是 vim(目前也在学习)。

我发现 AirbnbGoogle 提供了一些样式指南和 linting 的预设以及一些其他。我还发现我可以使用 syntastic vim 插件,它可以帮助我在 vim.

中启用 linting 和样式检查

但我不知道如何在 vim 中 link 这些东西?我需要创建哪些配置文件以及如何在 Syntastic vim 插件中启用这些功能?我还想在文件保存功能上启用 jscs 自动修复。

编辑:我也在使用与 es6 的反应。

任何基本或细节方向,实现相同的教程link都会有所帮助。

谢谢

在您的主目录中创建(或编辑)名为 .vimrc 的文件,您可以通过将此行添加到您的 .vimrc

来告诉 syntastic 使用哪个 linter
let g:syntastic_javascript_checkers = ['jscs']

至于在写入时自动修复代码,请参阅此问题的答案:


Suggestion/Update

JSCS 现在与 ESlint 合并,因此您最终应该切换 linters,您可以编辑 .vimrc 中的行以改为使用 'eslint';您可以使用 .eslintrc 文件或 eslint's configuration docs to get it to understand the es6/react stuff, currently I've got my .vimrc 设置中详述的其他几个选项来配置 eslint,以便在不同情况下使用不同的 linter,如下所示:

if has("autocmd")
    " use google/jshint for js "
    autocmd FileType javascript.js let g:syntastic_javascript_checkers = ['gjslint','jshint']
    " use eslint for jsx "
    autocmd FileType javascript.jsx let g:syntastic_javascript_checkers = ['eslint']
else
    " if an older version of vim without autocmd just use google/jshint "
    let g:syntastic_javascript_checkers = ['gjslint','jshint']
endif

我修改了 中的代码以使用 eslint

function! FixJS()
    "Save current cursor position"
    let l:winview = winsaveview()
    "run eslint fix on current buffer"
    ! eslint --fix %
    "Restore cursor position"
    call winrestview(l:winview)
endfunction
command! FixJS :call FixJS()

"Run the FixJS command just before the buffer is written for *.js files"
autocmd BufWritePre *.js FixJS

应该在写入时或使用命令时自动修复代码 :FixJS