【发布时间】:2011-04-19 20:40:23
【问题描述】:
我不想安装其他插件,例如 pylint.vim,
今天,我决定使用 vim edit python 而不是 pydev,它是一个 Eclipse 插件。但我遇到了问题。
我已经在我的 vimrc 中添加了这个
autocmd BufWritePost *.py !pylint <afile>
但是 pylint 在输出中不包含文件名
************* Module mymodule
E: 22: invalid syntax
shell return 2
所以不能跳转到第22行,所以我用sed改变输出
autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
它返回:
mymodule.py:22: E: : invalid syntax
但没有 shell 由 vim 返回 2。所以它仍然不能跳到那条线。 vim 认为编译成功
========================== 新评论=========== Call a function in Vim’s `autocmd` command
我想也许我应该使用make命令并设置makeprg,所以我使用下面的配置
autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
autocmd BufWritePost *.py make
当我保存时,vim 返回:
************* 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
【问题讨论】: