Ich habe erst letzte Woche angefangen, Emacs zu verwenden, und bis jetzt läuft alles gut. Ich verwende tramp, um entfernte Dateien wie folgt zu bearbeiten:
C-x C-f
/ssh:user@server:/file/to/edit
Ich melde mich mit einem SSH-Schlüssel beim Server an, daher wird kein Passwort benötigt. Daher mache ich nichts Besonderes, um Tramp zu starten, und meiner .emacs-Datei wurde nichts hinzugefügt. Ich gebe einfach das Obige in meine lokalen Emacs ein und es funktioniert.
Die Dateien, die ich bearbeite, sind meistens Python (dh: Nur-Text * .py-Dateien) und zum größten Teil funktioniert alles korrekt. Wenn ich jedoch versuche, einige Dateien zu öffnen, werden sie nicht geöffnet und die folgende Meldung wird angezeigt:
gzip: stdin: unexpected end of file
Gibt es eine Möglichkeit, dieses Problem zu umgehen?
UPDATE: Wie in den von mir aktivierten Kommentaren vorgeschlagen (setq tramp-verbose 6)
. Der Tramp-Debug-Puffer ist riesig (Tausende von Zeilen), daher habe ich versucht, die Teile auszuwählen, die wichtig erscheinen oder bei denen ein Fehler erwähnt wird. Hoffentlich hilft dies dabei, herauszufinden, was passiert:
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)'
Die letzte Zeile scheint der eigentliche Fehler zu sein.
tramp-inline-compress-start-size
auf 1000000 erhöhen ?
tramp-inline-compress-start-size
), komprimiert tramp die Daten auf der Serverseite und dekomprimiert sie auf der Clientseite. Dies gilt nur für Dateien, die größer als, tramp-inline-compress-start-size
aber kleiner als sind tramp-copy-size-limit
.