Я не хочу устанавливать другой плагин, например 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 change output
autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
он возвращает:
mymodule.py:22: E: : invalid syntax
но без оболочки return 2 vim. поэтому он все равно не может перейти к этой линии. vim считает его успешно скомпилированным
========================= Новый комментарий =========== Вызвать функцию в команде Vims` autocmd`
Я думаю, может быть, я должен использовать команду make и установить makeprg, поэтому я использую ниже config
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