Tôi mới bắt đầu sử dụng emacs vào tuần trước và mọi thứ đang diễn ra tốt đẹp cho đến nay. Tôi đang sử dụng tramp để chỉnh sửa các tập tin từ xa như sau:
C-x C-f
/ssh:user@server:/file/to/edit
Tôi đăng nhập vào máy chủ bằng khóa ssh, vì vậy không cần mật khẩu. Vì vậy, tôi không làm gì đặc biệt để bắt đầu tramp và không có gì được thêm vào tệp .emacs của tôi, tôi chỉ cần nhập phần trên vào emacs cục bộ của mình và nó hoạt động.
Các tập tin tôi đang chỉnh sửa chủ yếu là python (tức là: văn bản thuần túy * .py tập tin) và đối với hầu hết mọi thứ, mọi thứ đều hoạt động chính xác. Tuy nhiên, khi tôi cố mở một số tệp, chúng không mở và thông báo sau được hiển thị:
gzip: stdin: unexpected end of file
Có cách nào để khắc phục vấn đề này không?
CẬP NHẬT: Theo đề xuất trong các ý kiến tôi kích hoạt (setq tramp-verbose 6)
. Bộ đệm gỡ lỗi rất lớn (hàng ngàn dòng) vì vậy tôi đã cố gắng chọn ra các phần có vẻ quan trọng hoặc khi một số lỗi được đề cập, hy vọng điều đó sẽ giúp tìm ra điều gì đang xảy ra:
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)'
Dòng cuối cùng có vẻ là lỗi thực tế.
tramp-inline-compress-start-size
một thứ gì đó lớn như 1000000 không?
tramp-inline-compress-start-size
) thì tramp sẽ nén dữ liệu ở phía máy chủ và giải nén nó ở phía máy khách. Điều này chỉ áp dụng cho các tệp lớn hơn tramp-inline-compress-start-size
nhưng nhỏ hơn tramp-copy-size-limit
.