Python中使用Vim进行开发,有没有轻量级的语法检测(Lint)工具?

我用 vim 写 python,希望语法检测功能能提醒我 “变量名未申明却使用”,以及“变量申明了但未使用”。

我装过 vim-flake8、pymode,但这些东西太复杂,提醒了一大堆我不需要的错误。

我想要一个轻量级的 lint 工具,解决最基本的语法错误就行,谢谢~
Python中使用Vim进行开发,有没有轻量级的语法检测(Lint)工具?

23 回复

解决所有这些错误后会发现自己写的 python 代码好多了


对于在Vim里做Python开发,语法检查(Lint)这块,pylintflake8太重了,跑起来慢,规则也管得宽。我推荐两个轻量又直接的方案,配合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

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 大佬

回到顶部