我不想安裝其它插件,像pylint.vim,如何使用pylint的在vim
今天,我決定使用vim編輯蟒蛇代替的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返回2由vim。所以它仍然不能跳到那條線。 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
謝謝。正是我想要的。但是,%:p的意思是什麼? errorformat是一個vim變量,它會如何影響pylint? – 2010-10-02 03:08:46
'%:p'表示使用文件的完整路徑 – idbrii 2011-02-23 20:19:14
很好的答案。但是--output-format現在是pylint 1.0.0中的一個棄用選項。替代方法是使用'set makeprg = pylint \ --reports = n \ --msg-template = \「{path}:{line}:\ {msg_id} \ {symbol},\ {obj} \ {msg} \ 「\%:p' – JohnTESlade 2014-02-21 17:17:42