Acabo de comenzar a usar emacs la semana pasada y todo va bien hasta ahora. Estoy usando vagabundo para editar archivos remotos de la siguiente manera:
C-x C-f
/ssh:user@server:/file/to/edit
Me conecto al servidor con una clave ssh, por lo que no se necesita contraseña. Por lo tanto, no hago nada especial para iniciar el vagabundo y no se ha agregado nada a mi archivo .emacs, simplemente escribo lo anterior en mi emacs local y funciona.
Los archivos que estoy editando son en su mayoría python (es decir: archivos de texto plano * .py) y en su mayor parte todo funciona correctamente. Sin embargo, cuando intento abrir algunos archivos, no se abren y aparece el siguiente mensaje:
gzip: stdin: unexpected end of file
¿Hay alguna forma de solucionar este problema?
ACTUALIZACIÓN: Como se sugiere en los comentarios que habilité (setq tramp-verbose 6)
. El búfer de depuración de vagabundos es enorme (miles de líneas), así que he tratado de elegir las partes que parecen ser importantes o donde se menciona algún tipo de error, con suerte eso ayudará a descubrir lo que está sucediendo:
16:11:29.124528 tramp-sh-handle-file-local-copy (3) # Encoding remote file `/ssh:myuser@myserver:/path/to/python/file.py' with `(gzip <%s | base64)'...done
16:11:29.130875 tramp-sh-handle-file-truename (4) # Finding true name for `/ssh:myuser@myserver:/path/to/python/file/'
16:11:29.131565 tramp-send-command (6) # \readlink --canonicalize-missing /path/to/python/file/ 2>/dev/null; echo tramp_exit_status $?
16:11:29.376133 tramp-wait-for-regexp (6) #
16:11:33.245252 tramp-sh-handle-file-local-copy (3) # Decoding local file `/tmp/tramp.4885Mau.py' with `(lambda (beg end) (base64-decode-region beg end) (let ((coding-system-for-write (quote binary)) (coding-system-for-read (quote binary))) (apply (quote call-process-region) (point-min) (point-max) (car (split-string gzip -d)) t t nil (cdr (split-string gzip -d)))))'...done
16:11:33.249827 tramp-call-process (6) # `chown 1000:1000 /tmp/tramp.4885Mau.py' nil nil
16:11:33.252963 tramp-call-process (6) # 0
16:11:33.255820 tramp-handle-insert-file-contents (3) # Inserting `/ssh:myuser@myserver:/path/to/python/file.py'...done
///b47a60d20b86781fc5d02f0fac35ec59#$16:11:34.975322 tramp-send-command-and-check (1) # File error: Couldn't find exit status of `( (test -e /path/to/python/file.py || test -h /path/to/python/file.py) && \stat -c '(("%N") %h %ue0 %ge0 %Xe0 %Ye0 %Ze0 %se0 "%A" t %ie0 -1)' /path/to/python/file.py || echo nil)'
La última línea parece ser el error real.
tramp-inline-compress-start-size
algo tan grande como 1000000?tramp-inline-compress-start-size
), entonces vagabundo comprime los datos en el lado del servidor y los descomprime en el lado del cliente. Esto solo se aplica a archivos que son más grandestramp-inline-compress-start-size
pero más pequeños quetramp-copy-size-limit
.Respuestas:
Tuve un problema similar al intentar abrir / guardar archivos ASCII simples a través de sftp de tramp: los archivos estaban bien, pude editarlos, por ejemplo
nano
, pero tratar de abrirlos a través de vagabundo sería rechazado con el mensaje bastante críptico :invalid string format
.Esto probablemente estaba relacionado con la alineación y la compresión, porque cambiarlas resolvió el problema para mí. Esto es lo que he hecho, usando la interfaz de usuario:
M-x customize-mode RET tramp-mode
Tramp Copy Size Limit
yTramp Inline Compress Start Size
en un número muy alto (1000000
en mi caso) para evitar la transferencia de datos fuera de banda y / o comprimida. Tenga en cuenta que, a diferencia del OP, tuve que cambiar ambos para que funcione. Nuevamente, esto significa que solo funciona para la transferencia en línea, sin comprimir, pero en cuanto al OP, esto es más que suficiente para mí, ya que solo quiero editar de forma remota archivos ASCII bastante pequeños con el mejor editor que existe.Solo quería publicarlo en caso de que alguien se encuentre con el mismo problema, porque buscar en Google el mensaje de error no arrojó ningún resultado útil y me tomó un tiempo descubrir que estaba relacionado con el tamaño del archivo (lo que me llevó a esta publicación ) Si necesita información adicional o archivos de registro para resolver el problema, no dude en preguntar, pero creo que podrá reproducirlo al reducir las variables mencionadas anteriormente.
¡Salud! Andres
fuente