2017-06-21 98 views
0

我有vim的合成与eslint和jshint一起正确安装。我更喜欢jshint的大部分我的JavaScript编程。但是,我开始学习React,并希望使用eslint合成(eslint具有卓越/合适的反应)。更改Vim的Syntastic使用基于文件扩展名的特定检查器?

是否可以将vim设置为使用* .js文件的jshint,以及* .jsx文件的eslint?

我看到:帮助合成检查器,反应得到集中在JavaScript。链接短裤并不是我想要的,无论是。

+0

你可以试试'autocmd BufRead,BufNewFile * .jsx让b:syntastic_checkers = ['eslint']'。这可能会或可能不会与'syntastic_check_on_open'一起工作,具体取决于Vim选择运行'autocmd's的顺序(顺序不明确)。如果它仍然在运行时打开'jshint',则可能会为'* .js'添加一个类似的'autocmd',并且未设置'g:syntastic_javascript_checkers'。 – lcd047

+0

谢谢你让我回答@ lcd047! – bradleyhop

回答

-1

找到了!你非常接近@ lcd047,但是你的评论让我走上了正确的道路!为了使eslint只* JSX文件,把我的作品.vimrc如下:

au BufEnter *.jsx let b:syntastic_checkers = ['eslint']

在我的情况下,syntastic将使用jshint上的JavaScript在默认情况下,即使检查者没有在.vimrc设置。即使g:syntastic_javascript_checkers未被设置,或者即使它被设置为jshint,即使设置了上述工作。

+0

'BufEnter'上的'autocmd'肯定不能用于'syntastic_check_on_open'。尽管如此,请随时忽略我。 – lcd047

+0

@ lcd047,也许我发现了一个错误呢?我仍然得到如上所述的相同的行为:JavaScript文件上的jshint和* .jsx文件上的eslint。我的vimrc中也有'g:syntastic_check_on_open = 1'。我通过npm在全球安装了两个检查器。 作为合成的主要贡献者,我非常感谢您的帮助。原谅我,如果我看起来有点教学(这是我的老师培训和我自己的经验/兴奋表现)。 – bradleyhop

+1

错误在于你理解应该发生的事情。 'check_on_open'在'BufRead'上运行,'BufRead'在'BufEnter'之前应用。 'b:syntastic_checkers'将会取消您在主动模式下运行'check_on_open'的_first_时间。 – lcd047