अपडेट करें
इस व्यवहार को बग # 34374 में चर्चा की गई और 2019-02-15 को विलय कर दिया गया ।
इसलिए Emacs 27 में, ewwएक उपसर्ग तर्क के साथ कॉल करना इसे डिफ़ॉल्ट *eww*बफर का पुन: उपयोग करने के बजाय एक नए बफर का उपयोग करने के लिए कहता है ।
मुझे आश्चर्य है कि यह कार्यक्षमता अभी बिल्ट-इन नहीं है। क्या मैं इसे याद कर रहा हूं?
हां और ना। इसी तरह की कार्यक्षमता Emacs 26 में कमांड के रूप में जोड़ी गई थी eww-open-in-new-buffer, जो M-RETडिफ़ॉल्ट रूप से EWW बफ़र्स में बंधी है :
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.
एकमात्र समस्या यह है कि, लेखन के समय, यह कमांड केवल EWW बफ़र्स में काम करने तक सीमित है। विशेष रूप से, यह फेंकता है user-errorयदि उपयोगकर्ता विकल्प द्वारा निर्धारित बिंदु पर कोई सार्थक लिंक नहीं मिलता है, तो 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.
कमांड की एक और सीमा यह है कि यह उपयोगकर्ता को URL या खोज शब्दों के लिए संकेत नहीं देता है, जैसा कि कमांड ewwकरेगा।
यहाँ कैसे आप के बीच इन मतभेदों को पाटने सकता का एक सरल उदाहरण है ewwऔर 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)))
यह जो करता है, पहले उस interactiveयुक्ति को कहते हैं eww, जो URL या खोज शब्दों के लिए हमेशा की तरह संकेत देती है। यह तब eww-open-in-new-bufferपहले के इनपुट URL के साथ कॉल करता है या केवल सुझाए गए URI के रूप में खोज शब्द करता है, ताकि कमांड टैंट्रम न फेंके।
यह कमांड EWW बफ़र के भीतर और बिना दोनों काम करेगा, इसलिए यह डिफ़ॉल्ट के लिए ड्रॉप-इन प्रतिस्थापन के रूप में कार्य कर सकता है eww-open-in-new-buffer, यदि आप चाहें तो:
(with-eval-after-load 'eww
(define-key eww-mode-map [remap eww-open-in-new-buffer] #'my-eww-new-buffer))
किसी भी तरह से, आप इसे कहीं से भी लागू कर सकते हैं M-xmy-eww-new-bufferRETया इसे विश्व स्तर पर एक अधिक सुविधाजनक कुंजी से बांध सकते हैं।
ewwएक उपसर्ग तर्क के साथ कॉल करने के लिए समर्थन जोड़ता है; मेरा जवाब नीचे देखें।