首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在vim中使用pylint

如何在vim中使用pylint
EN

Stack Overflow用户
提问于 2010-10-01 21:10:38
回答 5查看 32.2K关注 0票数 24

我不想安装另一个插件,比如pylint.vim,

今天,我决定使用vim edit python而不是pydev,这是一个eclipse插件。但我有一些问题。

我已经在我的vimrc中添加了这个

代码语言:javascript
复制
autocmd BufWritePost *.py !pylint <afile>

但pylint在输出中不包含文件名

代码语言:javascript
复制
************* Module mymodule
E: 22: invalid syntax

shell return 2

所以它不能跳到第22行,所以我使用sed更改了输出

代码语言:javascript
复制
autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'

它返回:

代码语言:javascript
复制
mymodule.py:22: E: : invalid syntax

但是没有shell通过vim返回2。所以它仍然不能跳到那条线。vim将其视为编译成功

========================= new comment =========== Call a function in Vim’s autocmd command

我想也许我应该使用make命令并设置makeprg,所以我使用下面的config

代码语言:javascript
复制
autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
autocmd BufWritePost *.py make

当我保存时,vim返回:

代码语言:javascript
复制
************* Module count
E:  3: invalid syntax
(1 of 2): ************* Module count
Error detected while processing BufWritePost Auto commands for "*.py":
E492: Not an editor command:  sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: 
\1: /g 
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-02 05:53:08

为什么在Linux上能正常工作的sed如此复杂?尝试以下操作:

代码语言:javascript
复制
set makeprg=pylint\ --reports=n\ --output-format=parseable\ %:p
set errorformat=%f:%l:\ %m
票数 29
EN

Stack Overflow用户

发布于 2010-10-01 21:19:56

pylint.vim是旧的,请改用syntastic:

https://github.com/scrooloose/syntastic

票数 16
EN

Stack Overflow用户

发布于 2010-10-02 00:02:53

最后我自己解决了这个问题。我想和你们分享一下。在vimrc中有2行。

代码语言:javascript
复制
autocmd FileType python let &makeprg='pylint %\|sed "s/^\(\w*\):\s*\([0-9]\+\)/%:\2:\ \1:\ /g"'
autocmd BufWritePost *.py make 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3839454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档