Python中使用Vim进行开发,有没有轻量级的语法检测(Lint)工具?
我用 vim 写 python,希望语法检测功能能提醒我 “变量名未申明却使用”,以及“变量申明了但未使用”。
我装过 vim-flake8、pymode,但这些东西太复杂,提醒了一大堆我不需要的错误。
我想要一个轻量级的 lint 工具,解决最基本的语法错误就行,谢谢~
Python中使用Vim进行开发,有没有轻量级的语法检测(Lint)工具?
解决所有这些错误后会发现自己写的 python 代码好多了
对于在Vim里做Python开发,语法检查(Lint)这块,pylint和flake8太重了,跑起来慢,规则也管得宽。我推荐两个轻量又直接的方案,配合Vim的异步功能基本无感。
1. Pyflakes + ALE (异步运行) 这是最经典的轻量组合。Pyflakes只检查语法错误和未定义的变量这些硬伤,不管代码风格,所以飞快。用ALE插件来跑它,异步不卡编辑。
- 先装Pyflakes和ALE:
pip install pyflakes # 在Vim里用插件管理器装ALE,比如vim-plug # Plug 'dense-analysis/ale' - 在
~/.vimrc里配置ALE用Pyflakes:let g:ale_linters = {'python': ['pyflakes']} let g:ale_fixers = {'python': []} " 不需要自动修复,保持轻量 let g:ale_sign_error = 'E>' " 错误标记 let g:ale_sign_warning = 'W>' " 警告标记 set updatetime=500 " 检查延迟,毫秒
2. 直接用 python -m py_compile (零依赖)
如果你连Pyflakes都不想装,Python自带模块py_compile能检查基本语法。虽然不能实时,但写完后快速验证一下没问题。
在Vim里可以设个快捷键:
nnoremap <leader>c :!python -m py_compile %<CR>
保存文件后按\c(假设leader键是\)就能看语法通不通。
总结:要实时无感就Pyflakes+ALE,够轻够快。
同意 1L 观点.
ale, github 搜索, 装上后就不用管了
用 pycharm 哪怕免费版本
也比一堆配置出来的 bug 多多的开源的强 1000 倍
4 楼都不看楼主是用 Vim 的嘛,很大程度都没有图形界面,就算有,人家也是要 Vim 插件的呀~
谢谢,我看看
同意,不过我喜欢有自己的代码风格呢~
只用 vim
lsp
pycharm + vim plugin …
flake8 已经非常好了,默认不配置也不会很啰嗦,加一个 autopep 的插件可以解决 80%+的格式错误
真正啰嗦的是 pylint,楼主可以比较一下。。。
如果楼主想了解其他检查工具,可以看看 vim 的 ale 插件关于 python 的建议
https://github.com/neomake/neomake
silent! call neomake#configure#automake(‘nrwi’, 500)
这需要这个配置就行。
https://github.com/tracyone/vinux
python 变量不用声明呀
你是个人才……
假如不是远程作业的话,可以试试 wingide+vim 模式
楼主的意思应该是 赋值 吧
a = 1 + 1
这时 a 不就申明了么,如果不使用 a,就需要提示
配置一下,把一些不需要的错误代码配置就去,就屏蔽一部分了。
"let g:syntastic_python_checkers=[‘flake8’]
"let g:syntastic_python_flake8_args=’–ignore=W,F,E121,E123,E126,E226,E402,E271,E24,E704,W503,W504,E265,F401,E501,E231,E225,E303,E302,E203,W291,E261,E262,F841,W391,E101’
"
可以参考着改下
谢谢!
肉眼
执行一下就知道错哪儿了
我写的是 web 程序
vim 大佬
最后用的是 flake8,忽略部分错误
http://flake8.pycqa.org/en/latest/user/configuration.html

