Güncelleme
Bu davranış, hata # 34374'te tartışıldı ve 2019-02-15'te birleştirildi .
Emacs 27'de, ewwbir önek argümanı ile çağrılması , ona varsayılan *eww*arabelleği yeniden kullanmak yerine yeni bir tampon kullanmasını söyler .
Bu işlevin sadece yerleşik olmadığı için şaşırdım. Sadece özlüyor muyum?
Evet ve hayır. Emacs 26'da EWW arabelleklerinde varsayılan olarak bağlı olan komut olarak benzer işlevler eklendi :eww-open-in-new-bufferM-RET
eww-open-in-new-buffer is an interactive compiled Lisp function in
‘eww.el’.
It is bound to M-RET, <menu-bar> <Eww> <Follow URL in new buffer>.
(eww-open-in-new-buffer)
Fetch link at point in a new EWW buffer.
Tek sorun, yazma sırasında bu komutun yalnızca EWW arabellekleriyle çalışmakla sınırlı olmasıdır. Özellikle, user-errorkullanıcı seçeneği tarafından belirlenen noktada anlamlı bir bağlantı bulunmazsa atar eww-suggest-uris:
eww-suggest-uris is a variable defined in ‘eww.el’.
Its value is
(eww-links-at-point url-get-url-at-point eww-current-url)
Documentation:
List of functions called to form the list of default URIs for ‘eww’.
Each of the elements is a function returning either a string or a list
of strings. The results will be joined into a single list with
duplicate entries (if any) removed.
You can customize this variable.
This variable was introduced, or its default value was changed, in
version 25.1 of Emacs.
Komutun diğer bir sınırlaması, komutun yaptığı gibi kullanıcıdan bir URL veya arama terimleri ewwistememesidir.
Aşağıda ewwve arasındaki bu farkları nasıl köprüleyebileceğinize dair basit bir örnek eww-open-in-new-buffer:
(defun my-eww-new-buffer (url)
"Like `eww', but fetch URL in a new EWW buffer."
(interactive (advice-eval-interactive-spec (cadr (interactive-form 'eww))))
(let ((eww-suggest-uris (list (lambda () url))))
(eww-open-in-new-buffer)))
Ne yapar ilk görüşme olduğunu interactiveSpec ait ewwher zamanki gibi arama terimlerini URL'ler için istemleri veya. Daha sonra eww-open-in-new-buffer, daha önce girilen URL'lerle veya arama terimleriyle önerilen tek URI olarak çağırır , böylece komut bir öfke nöbeti atmaz.
Bu komut hem EWW arabellekleri içinde hem de olmadan çalışacaktır, böylece eww-open-in-new-bufferisterseniz varsayılan için bir yedek değiştirme görevi görebilir :
(with-eval-after-load 'eww
(define-key eww-mode-map [remap eww-open-in-new-buffer] #'my-eww-new-buffer))
Her iki durumda da, herhangi bir yerden herhangi bir yerden başlatabilir M-xmy-eww-new-bufferRETveya daha uygun bir anahtara global olarak bağlayabilirsiniz.
ewwbir önek argümanı ile çağrı için destek ekliyor ; cevabımı aşağıda görebilirsiniz.