Pregunta

Estoy tratando de utilizar flymake para funcionar pyflakes, como se sugiere aquí

Esto funciona bien para los archivos locales, y casi funciona con archivos remotos con un poco de ajuste, pero yo me quedo con un problema en el que flymake / pyflakes 'modifica' el búfer cuando se ejecuta (aunque nada parece realmente al cambio) , lo que hace que sea un poco inútil en la práctica (por ejemplo, guardar un archivo carreras Flymake que inmediatamente modifica el tampón de nuevo).

Esto es lo que hice hasta casi conseguir que funcione:

  1. pyflakes instalado en el cuadro de mando a distancia.
  2. Consumer mi variable de modo que tramp-remote-process-environment pyflakes se podían encontrar en su camino
  3. Se utiliza una variante del código desde el enlace wiki anteriormente. Obviamente Excluí el cheque que lo inhabilita para los búferes remotos. Además, el constructo (when (load "flymake" t) ...) no parecen funcionar como esperaba, pero no estoy demasiado preocupado por eso.
  4. Definidos Re
  5. (para propósitos de prueba - consejos debe estar bien si esto se puede hacer al trabajo) la función flymake-start-syntax-check-process para que utilice start-file-process (que trabaja con vagabundo) en lugar de start-process (que no lo hace)

El cambio en el # 4 no parece causar ningún problema al procesar un archivo local, pero a pesar de esto ahora permite Flymake para ejecutar los pyflakes remotas de los archivos remotos (los errores se resaltan como se esperaba), en este caso la memoria intermedia está 'modificado' siempre que se ejecuta Flymake.

supongo que start-file-process, para procesos remotos, da lugar a un cierto valor de retorno adicional / datos que no se produce para los procesos locales.

¿Alguien tiene alguna idea / consejo?

  • Emacs 23.1 y 23.2 en Ubuntu
  • Python 2.4.6
  • pyflakes 0.4.0 (a través de easy_install)
¿Fue útil?

Solución

Usted necesita decirle a flymake crear que la copia de la memoria intermedia somewhere localmente, yo prefiero usar el directorio $TMP ya que este también me permite para uso vagabundo de archivos en directorios que no tengo permisos de escritura.

Es posible que desee pago my tenedor de flymake-pitón ya que hace todo esto.

Otros consejos

Tengo esta fijo en mi tenedor de Flymake ( https://github.com/illusori/emacs-flymake ).

o bien se ejecutará la comprobación de sintaxis en la máquina remota a través de vagabundo, sin el problema de búfer modificación que se está viendo; o puede establecer flymake-run-in-place a nil y se ejecutará la comprobación de sintaxis en la máquina local, al igual que flymake en un buffer regularmente no vagabundo.

Ya que está fijado a nivel Flymake día, esta solución funciona para todos los idiomas y comprobaciones de sintaxis en lugar de sólo pyflakes.

Si está interesado en los detalles de por qué está sucediendo, básicamente cuando el manejador de vagabundo por diversión-file-proceso de puesta en, se vuelca el mensaje de inicio de sesión para la conexión en el extremo del búfer antes de que cualquier filtro de salida puede ser unido al proceso.

Normalmente esto se manifiesta como personas que ven el contenido de / etc / issue aparecen al final de su archivo junto con "Usted tiene correo". y así sucesivamente.

En su caso, puede ser que el mensaje de inicio de sesión está vacío o sólo una nueva línea, por lo que no está viendo cualquier texto que se añade, a pesar de que está tendiendo la memoria intermedia que están modificados.

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