在工作中,我们使用与处理开源时不同的语法检查程序。有没有办法让Syntastic
指定默认检查器,如果在项目根目录中找到rc
文件,则更改检查器?
示例:如果找到.eslintrc
,请使用eslint
。如果未找到.eslintrc
,请使用standard
。
谢谢!
编辑:还在scrooloose/syntastic上打开了一个问题。
答案 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'带有您希望该目录的语法选项的文件。