5

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

示例:如果.eslintrc找到使用eslint. 如果没有.eslintrc找到,请使用standard.

谢谢!

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

4

2 回答 2

16

是的,你可以这样做:

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']

魔术,我告诉你。

于 2015-02-18T07:10:28.153 回答
1

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

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

然后在您想要一些不同行为的目录中,只需添加一个“.lvimrc”文件,其中包含您想要用于该目录的综合选项。

于 2016-06-13T06:12:24.463 回答