Depurar cómo vim llama a makeprg

Aug 26 2020

Estoy tratando de configurar pylint para que funcione con el :makecomando en Vim 8.2.

Lo configuré, :compiler pylintpero la ejecución :makeme da el mensaje de ayuda de pylint, por lo que algunos argumentos parecen pasarse incorrectamente.

:set makeprg? es

makeprg=pylint --output-format=text --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" --reports=no

Intenté ejecutar este comando directamente en la terminal (agregando el nombre del archivo) y funcionó: el resultado fue la lista de errores, no el mensaje de ayuda.

Desafortunadamente, no veo qué comando exacto está tratando de ejecutar vim. ¿Alguna pista sobre lo que hice mal o cómo depurarlo?

Me gustaría ceñirme a la funcionalidad predeterminada de vim tanto como sea posible y no usar ningún complemento para esto.

Respuestas

3 filbranden Aug 26 2020 at 04:01

¿cómo depurarlo?

Puede utilizar el :verbosecomando para aumentar la verbosidad de un comando específico.

En este caso particular, necesita un nivel de verbosidad superior a 3 para ver el comando de shell real ejecutado por Vim , por lo que esto debería funcionar:

:4verbose make
Calling shell to execute: "pylint --output-format=text --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" --reports=no  2>&1| tee /tmp/abcde12/3"

¿Alguna pista sobre lo que hice mal?

Como @D. Ben Knoble señaló que falta el nombre del archivo actual en la ejecución del comando. Puede solucionarlo pasándolo al :makecomando, con :make %, o puede incorporarlo %en makeprgsí mismo, ya que se expandirá %antes de ejecutar el comando:

:let &makeprg = 'pylint --output-format=text --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" --reports=no %'

Tenga %en cuenta el al final de la línea de comandos. Si se incorpora %a makeprg, entonces simplemente ejecutar :makefuncionará para ejecutar pylint en su archivo actual.

2 xaxa Aug 26 2020 at 03:37

(Gracias a @ d-ben-knoble)

makeprg no incluye el nombre del archivo, por lo que

:make %

debe usarse para pelar el archivo actual