হালনাগাদ
এই আচরণ আলোচনা হয়েছিল বাগ # 34374 এবং এর মার্জ 2019-02-15 ।
সুতরাং ইমাস ২ 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.
কমান্ডটির আরও একটি সীমাবদ্ধতা হ'ল এটি ব্যবহারকারীকে ইউআরএল বা অনুসন্ধানের পদগুলির জন্য অনুরোধ করে না, যেমন কমান্ডটি 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এটি পূর্ববর্তী ইনপুট ইউআরএল বা অনুসন্ধানের পদগুলির সাথে একমাত্র প্রস্তাবিত ইউআরআই হিসাবে কল করে, যাতে আদেশটি কোনও তন্ত্র না ছুঁড়ে।
এই কমান্ডটি 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একটি উপসর্গ যুক্তি দিয়ে কল করার জন্য সমর্থন যোগ করে ; নীচে আমার উত্তর দেখুন।