如何让Airbnb的JavaScript风格的eslint指南在vim中与react、es6一起工作?

如何让Airbnb的JavaScript风格的eslint指南在vim中与react、es6一起工作?,javascript,vim,eslint,jscs,Javascript,Vim,Eslint,Jscs,我对vim还相当陌生,并且开始了一个新的javascript项目,vim目前也在学习编辑器 我发现Airbnb、Google和其他一些公司提供的style guide和linting都有一些预设。我还发现我可以使用SyntasticVim插件,它可以帮助我在vim中启用linting和样式检查 但我不知道如何在vim中链接这些东西?我需要创建哪些配置文件,以及如何在Syntastic vim插件中启用这些功能?我还想启用jscs文件保存自动修复功能 编辑:我也在使用react with es6

我对vim还相当陌生,并且开始了一个新的javascript项目,vim目前也在学习编辑器

我发现Airbnb、Google和其他一些公司提供的style guide和linting都有一些预设。我还发现我可以使用SyntasticVim插件,它可以帮助我在vim中启用linting和样式检查

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

编辑:我也在使用react with es6

任何基本或详细的方向,教程链接,以实现相同的将是有益的


感谢您在主目录中创建或编辑名为.vimrc的文件,您可以通过将此行添加到.vimrc中来告诉syntastic要使用哪个linter

关于在编写时自动修复代码,请参见此问题的答案:

建议/更新

JSCS现在与ESlint合并,因此您最终应该切换linter,您可以编辑.vimrc中的行以使用“ESlint”;您可以使用.eslintrc文件或中详细介绍的其他几个选项来配置eslint,以使其理解es6/react内容,目前我已设置为在以下不同情况下使用不同的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创建或编辑名为.vimrc的文件时,您可以通过将这一行添加到.vimrc来告诉syntastic要使用哪个linter

关于在编写时自动修复代码,请参见此问题的答案:

建议/更新

JSCS现在与ESlint合并,因此您最终应该切换linter,您可以编辑.vimrc中的行以使用“ESlint”;您可以使用.eslintrc文件或中详细介绍的其他几个选项来配置eslint,以使其理解es6/react内容,目前我已设置为在以下不同情况下使用不同的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

jscs与eslint合并,这是否意味着eslint也将提供jscs的功能?我还需要通过npm安装eslint吗?另外,请建议我如何使用Airbnb preset作为我的linting规则?是的,eslint现在有一个-fix选项,可以完成jscs的所有工作,jscs团队现在支持eslint。@JKirchartz有没有一种方法可以在不必在每个模块中本地安装eslint样式的情况下使用它?@zipp如果我理解正确,您应该使用npm安装-g全局安装eslinteslint@JKirchartz我理解,但您如何告诉eslint始终使用airbnb样式,而不是每次都在项目中本地设置它?JSC与eslint合并,这是否意味着eslint也将提供JSC的功能?我还需要通过npm安装eslint吗?另外,请建议我如何使用Airbnb preset作为我的linting规则?是的,eslint现在有一个-fix选项,可以完成jscs的所有工作,jscs团队现在支持eslint。@JKirchartz有没有一种方法可以在不必在每个模块中本地安装eslint样式的情况下使用它?@zipp如果我理解正确,您应该使用npm安装-g全局安装eslinteslint@JKirchartz我理解,但您如何告诉eslint始终使用airbnb样式,而不是每次都在项目中本地设置它?