comment utiliser pylint dans vim
Je ne veux pas installer un autre plugin, comme pylint.vim,
Et aujourd'hui, je décide d'utiliser vim modifier python au lieu de pydev qui est un plugin eclipse. Mais j'ai eu des problèmes.
J'ai ajouter dans mon vimrc
autocmd BufWritePost *.py !pylint <afile>
mais pylint ne contient pas de nom de fichier en sortie
************* Module mymodule
E: 22: invalid syntax
shell return 2
de sorte qu'il ne peut pas aller à la ligne 22 , j'ai donc utiliser sed changer la sortie
autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:: : /g'
il retourne:
mymodule.py:22: E: : invalid syntax
mais sans coquille retour 2 par vim. donc, il ne peut toujours pas sauter à la ligne. vim considérer comme de compiler avec succès
========================= nouveau commentaire ===========
Appeler une fonction dans Vim s `autocmd` de la commande
Je pense que je devrais peut-être utiliser la commande make et définir makeprg, donc j'utilise ci-dessous config
autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:: : /g'
autocmd BufWritePost *.py make
lorsque je sauvegarde, vim retourne:
************* 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
Vous devez vous connecter pour publier un commentaire.
pourquoi faire si compliqué avec sed qui fonctionne correctement sur Linux? Essayez ce qui suit:
%:p
moyens d'utiliser le chemin complet du fichierset makeprg=pylint\ --reports=n\ --msg-template=\"{path}:{line}:\ {msg_id}\ {symbol},\ {obj}\ {msg}\"\ %:p
$ pylint --version No config file found, using default configuration pylint 1.4.4, astroid 1.3.8, common 1.1.0 Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4]
pylint.vim
est vieux, utilisez syntastic à la place:https://github.com/scrooloose/syntastic
enfin je le résoudre moi-même. J'aimerais partager avec vous les gars. 2 lignes dans le vimrc.
Je vous recommande d'utiliser A. L. E (Asynchrone Peluches Moteur) https://github.com/w0rp/ale
Il prend en charge une gamme de python linters et des formateurs, y compris pylint. Grande chose au sujet d'A. L. E qu'il prend en charge de nombreuses autres langues.
vous pourriez vouloir essayer epylint au lieu de simplement pylint.
epylint (livré avec pylint) est celui qui est utilisé dans emacs (avec flymake). Il a quelques modifications, notamment concernant le chemin de la manipulation, voir la docstring au début de pylint/epylint.py pour plus d'informations. Il peut vous aider dans vim trop.
Note: je ne suis pas un utilisateur de vim pour la programmation de moi-même, mais pylint.vim semble être un décent option. Mais je ne doute pas de vos conditions préalables.
autocmd FileType python laisser &makeprg=‘/usr/local/bin/pylint %’
autocmd BufWritePost *.py faire
autocmd FileType python laisser &makeprg=‘/usr/local/bin/pyflakes %’
autocmd BufWritePost *.py faire