如何根据root中的文件存在使Syntastic加载不同的检查器?

时间:2015-02-17 23:59:15

标签: vim jshint vim-plugin syntastic eslint

在工作中,我们使用与处理开源时不同的语法检查程序。有没有办法让Syntastic指定默认检查器,如果在项目根目录中找到rc文件,则更改检查器?

示例:如果找到.eslintrc,请使用eslint。如果未找到.eslintrc,请使用standard

谢谢!

编辑:还在scrooloose/syntastic上打开了一个问题。

2 个答案:

答案 0 :(得分:15)

是的,你可以这样做:

autocmd FileType javascript let b:syntastic_checkers = findfile('.eslintrc', '.;') != '' ? ['eslint'] : ['standard']

修改:根据要求,解释其工作原理:

  • autocmd FileType javascript - 每次缓冲区的filetype设置为javascript时运行以下内容(通常每个缓冲区一次)
  • b:syntastic_checkers为当前缓冲区启用的检查器列表,覆盖g:syntastic_javascript_checkers
  • findfile('.eslintrc', ...) - 找到名为.eslintrc ...
  • 的文件
  • .; - ...在当前目录中及以上
  • != '' ? - 如果找到......
  • ['eslint'] - ...将b:syntastic_checkers设置为['eslint']
  • : ['standard'] - ...否则将其设为['standard']

魔术,我告诉你。

答案 1 :(得分:0)

另一个简单的选项,比这个问题更广泛的应用,是将以下内容添加到.vimrc文件中:

if findfile('.lvimrc','.') != ''
    source .lvimrc
endif

然后,在您想要一些不同行为的目录中,只需添加一个' .lvimrc'带有您希望该目录的语法选项的文件。