Vim中JSHint无法工作,已通过vim-pathogen安装Syntastic,需配置哪些内容?
解决Syntastic中JSHint无法生效的配置方案
我来帮你一步步搞定这个问题,毕竟Syntastic+JSHint的组合有时候确实需要调整几个小细节才能正常工作:
1. 先确认JSHint全局安装到位
Syntastic需要在系统全局PATH里找到JSHint,别只在项目本地安装。打开终端执行这个命令确保全局安装:npm install -g jshint
装完后用jshint --version测试,能正常输出版本号就说明全局可用了。
2. 配置Vim让Syntastic认准JSHint
打开你的.vimrc文件,添加或确认以下几行配置:
- 开启自动检查,不用每次手动触发:
let g:syntastic_auto_loc_list = 1 - 指定JavaScript的检查器就是JSHint:
let g:syntastic_javascript_checkers = ['jshint'] - 如果JSHint不在系统默认PATH里(比如你自定义了npm安装路径),得手动指定它的绝对路径:
let g:syntastic_javascript_jshint_exec = '/usr/local/bin/jshint'
不知道路径的话,终端里用which jshint就能查到。
3. 给项目加个JSHint配置文件
虽然官方文档说不需要特殊配置,但.jshintrc能帮JSHint明确检查规则,也能让Syntastic更清楚该怎么处理你的代码。在项目根目录执行jshint --init,跟着向导生成适合你的配置,或者手动写个基础版的.jshintrc:
{ "esversion": 6, "strict": "global", "undef": true, "unused": true }
4. 验证配置是否生效
重启Vim后,打开一个故意写了语法问题的JS文件(比如定义一个未使用的变量),然后执行:SyntasticCheck手动触发检查,再用:copen打开错误列表,看看有没有JSHint的提示。如果还是没反应,再跑一遍:SyntasticInfo确认下输出里的Currently enabled checker确实是jshint,而且没有报错信息。
另外提个小坑:如果你用的是GUI版Vim(比如gvim),它可能不会自动继承终端的PATH环境变量,这时候得在.vimrc里手动把JSHint所在的路径加进去:let $PATH .= ':/usr/local/bin'
(把路径换成你查到的JSHint所在目录)
内容的提问来源于stack exchange,提问作者Mussé Redi
相关产品推荐
相关产品推荐

