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

19

Я не хочу устанавливать другой плагин, например 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
  • спасибо. Только то, что я хочу. но, каково среднее%: p. и errorformat - это переменная vim, как она может повлиять на pylint? –  guilin 桂林 02.10.2010 в 05:08
  • %: p означает использование полного пути файла –  idbrii 23.02.2011 в 21:19
  • Отличный ответ. Но --output-format теперь является устаревшим вариантом в pylint 1.0.0. Альтернативой является использование set makeprg = pylint \ --reports = n \ --msg-template = \ "{path}: {строка}: \ {msg_id} \ {symbol}, \ {obj} \ {msg} \" \ %:п –  JohnTESlade 21.02.2014 в 18:17
  • Работает как очарование! $ pylint --version Файл конфигурации не найден, используя конфигурацию по умолчанию pylint 1.4.4, astroid 1.3.8, common 1.1.0 Python 3.4.3 (по умолчанию, окт. 14 2015, 20:28:29) [GCC 4.8.4] –  ATOzTOA 18.11.2015 в 00:20
14

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

Ссылка

    
ответ дан Reactormonk 01.10.2010 в 15:19
  • Что-то немного более существенное, чем просто голое звено, получило бы надпись. –  Daenyth 01.10.2010 в 15:59
  • Еще немного раздувается. –  Reactormonk 01.10.2010 в 16:10
  • Он защищает от гниения линии. –  Dennis Williamson 01.10.2010 в 16:34
  • Вышеупомянутый плагин Vim не поддерживается. Эта вилка нацелена на то, чтобы быть в курсе пилинга. github.com/orenhe/pylint.vim –  Viktiglemma 15.06.2012 в 11:22
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
  • Я использую ответ jceb –  guilin 桂林 03.10.2010 в 16:10
  • Спасибо, я могу использовать его и искать более длительное время. Но я чувствую, что это должно быть некоторое обновление. мы можем разделить экран, если pylint сообщит о любой ошибке. прямо сейчас, если это большая ошибка и потерять эту информацию –  user765443 09.02.2017 в 06:51
  • Я могу использовать его, но я хотел бы разделить ошибку, если я получу какую-либо ошибку при любых возможностях –  user765443 09.02.2017 в 06:54
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