Pregunta

No quiero instalar otro plugin, como pylint.vim,

Y hoy, decido usar editar pitón vim en lugar de pydev que es un plugin de eclipse. Pero tengo problemas.

Tengo añadir esto en mi vimrc

autocmd BufWritePost *.py !pylint <afile>

pylint pero no contiene el nombre de archivo de salida

************* Module mymodule
E: 22: invalid syntax

shell return 2

por lo que no puede saltar a la línea 22, así que uso el cambio sed la salida

autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'

devuelve:

mymodule.py:22: E: : invalid syntax

pero sin retorno concha 2 por vim. por lo que todavía no puede saltar a esa línea. vim considerarlo como compilar correctamente

========================= nuevo comentario =========== Llamar a una función de comando `autocmd` de Vim

creo que tal vez debería utilizar el comando marca y el conjunto makeprg, así que utilizo a continuación config

autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
autocmd BufWritePost *.py make

al guardar, vuelve 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 
¿Fue útil?

Solución

¿por qué tan complicada con sed, que simplemente funciona correctamente en Linux? Intente lo siguiente:

set makeprg=pylint\ --reports=n\ --output-format=parseable\ %:p
set errorformat=%f:%l:\ %m

Otros consejos

pylint.vim es viejo, el uso syntastic lugar:

https://github.com/scrooloose/syntastic

en la última determinación que yo mismo. Me gustaría compartir con ustedes. 2 líneas en vimrc.

autocmd FileType python let &makeprg='pylint %\|sed "s/^\(\w*\):\s*\([0-9]\+\)/%:\2:\ \1:\ /g"'
autocmd BufWritePost *.py make 

Yo recomendaría utilizar ALE (Asynchronous pelusa Motor) https://github.com/w0rp/ale

Es compatible con una gama de linters Python y formateadores incluyendo pylint . Lo bueno de A.L.E que es compatible con muchos otros idiomas.

es posible que desee intentar ejecutar epylint en lugar de sólo pylint.

epylint (incluido con pylint) es la que se utiliza dentro de emacs (con flymake). Cuenta con unos pocos cambios, en especial sobre la tramitación de ruta, ver la cadena de documentación al inicio del pylint / epylint.py para más información. Esto le podría ayudar en vim también.

Nota al margen: No soy un usuario de vim para la programación de mí mismo, pero pylint.vim todavía parece ser una opción decente. Pero no voy a cuestionar sus requisitos previos.

autocmd FileType pitón dejar y makeprg = ‘/ usr / local / bin / pylint%’

autocmd BufWritePost * .py maquillaje

autocmd FileType pitón dejar y makeprg = ‘/ usr / local / bin / pyflakes%’

autocmd BufWritePost * .py maquillaje

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top