как использовать pylint в vim

17

Я не хочу устанавливать другой плагин, например 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>:: : /g'

он возвращает:

mymodule.py:22: E: : invalid syntax

, но без оболочки return 2 vim. поэтому он все равно не может перейти к этой линии. vim считает его успешно скомпилированным

========================= Новый комментарий =========== Вызвать функцию в команде «autocmd» Vim

Я думаю, может быть, я должен использовать команду make и установить makeprg, поэтому я использую ниже config

autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:: : /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>:: 
: /g 
    
задан guilin 桂林 01.10.2010 в 15:10
источник

5 ответов

25

почему так сложно с sed, который просто работает правильно на Linux? Попробуйте следующее:

set makeprg=pylint\ --reports=n\ --output-format=parseable\ %:p
set errorformat=%f:%l:\ %m
    
ответ дан jceb 01.10.2010 в 23:53
источник
14

pylint.vim старое, вместо этого используйте синтаксис:

Ссылка

    
ответ дан Reactormonk 01.10.2010 в 15:19
источник
3

наконец, я сам разрешаю это. Я бы хотел поделиться с вами парнями. 2 строки в vimrc.

autocmd FileType python let &makeprg='pylint %\|sed "s/^\(\w*\):\s*\([0-9]\+\)/%::\ :\ /g"'
autocmd BufWritePost *.py make 
    
ответ дан guilin 桂林 01.10.2010 в 18:02
источник
0

вы можете попробовать запустить epylint вместо pylint.

epylint (поставляется с pylint) - это тот, который используется в emacs (с flymake). Он имеет несколько изменений, особенно в отношении обработки пути, для получения дополнительной информации см. Docstring в начале pylint / epylint.py. Это может помочь вам и в vim.

Sidenote: я не пользователь vim для программирования самостоятельно, но pylint.vim по-прежнему кажется достойным вариантом. Но я не буду подвергать сомнению ваши предпосылки.     

ответ дан gurney alex 23.11.2010 в 08:38
источник
0

autocmd FileType python let & amp; makeprg = '/ usr / local / bin / pylint%'

autocmd BufWritePost * .py make

autocmd FileType python let & amp; makeprg = '/ usr / local / bin / pyflakes%'

autocmd BufWritePost * .py make

    
ответ дан khushbu 17.05.2017 в 11:00
источник