Lý lịch
Eww, như nhiều gói khác, sử dụng thuộc tính display
văn bản để hiển thị hình ảnh. Đó là lý do tại sao việc chuyển đổi thuộc tính invisible
văn bản không giúp được. Bạn đang làm cho văn bản trở nên vô hình nhưng display
tài sản vẫn đang được hiển thị.
Trong thực tế, đây là một cái gì đó phổ biến đến mức mã dưới đây sẽ hoạt động trên bất kỳ bộ đệm nào hiển thị hình ảnh (không chỉ eww).
Giải pháp
Giải pháp đơn giản nhất là chỉ cần loại bỏ thuộc display
tính khỏi toàn bộ bộ đệm. Nhưng đó là một hành động không thể đảo ngược, bạn sẽ không thể bật lại hình ảnh mà không làm mới trang.
Giải pháp mạnh mẽ hơn, được trình bày dưới đây, loại bỏ display
các thuộc tính trong bộ đệm và đồng thời sao lưu hình ảnh sang thuộc tính khác (vô dụng). Khi được gọi lại, lệnh di chuyển các hình ảnh được sao lưu trở lại vào thuộc display
tính.
(defvar-local endless/display-images t)
(defun endless/toggle-image-display ()
"Toggle images display on current buffer."
(interactive)
(setq endless/display-images
(null endless/display-images))
(endless/backup-display-property endless/display-images))
Đây là anh chàng thực hiện sao lưu và khôi phục ở mọi nơi. Mã thuộc tính văn bản không dễ đọc lắm, nhưng tôi nghĩ chức năng này đủ ngắn để tự giải thích.
(defun endless/backup-display-property (invert &optional object)
"Move the 'display property at POS to 'display-backup.
Only applies if display property is an image.
If INVERT is non-nil, move from 'display-backup to 'display
instead.
Optional OBJECT specifies the string or buffer. Nil means current
buffer."
(let* ((inhibit-read-only t)
(from (if invert 'display-backup 'display))
(to (if invert 'display 'display-backup))
(pos (point-min))
left prop)
(while (and pos (/= pos (point-max)))
(if (get-text-property pos from object)
(setq left pos)
(setq left (next-single-property-change pos from object)))
(if (or (null left) (= left (point-max)))
(setq pos nil)
(setq prop (get-text-property left from object))
(setq pos (or (next-single-property-change left from object)
(point-max)))
(when (eq (car prop) 'image)
(add-text-properties left pos (list from nil to prop) object))))))
Xin vui lòng cho tôi biết nếu nó hoạt động! Tôi chỉ thử nghiệm nó trên các trang web rất đơn giản.