M-x eww
meminta url atau kata kunci dan membuka *eww*
buffer baru . In eww-mode
, G
terikat eww
, yang menggantikan konten buffer eww tunggal.
Untuk membuat beberapa buffer untuk halaman web yang berbeda, saya terpaksa membuat buffer baru, mengatur eww-mode
secara manual, lalu menekan G
(atau M-x eww
) untuk mengunjungi URL.
Saya dapat dengan mudah menulis fungsi yang melakukan semua ini untuk saya, tetapi saya terkejut fungsi ini bukan hanya bawaan. Apakah saya hanya melewatkannya?
eww
dengan argumen awalan; lihat jawaban saya di bawah ini.Jawaban:
Anda benar yang
eww
tidak secara otomatis membuat buffer baru untuk Anda. Tapi saya telah menggunakan trik ini dari ergoemacs.org dan ini sangat bagus!Dengan eval'ed di bawah ini, setiap kali Anda melakukannya
M-x eww
dari buffer non-eww , buffer eww unik akan dibuat.Jika Anda ingin menelurkan buffer eww baru saat berada di buffer eww, eval saran di bawah ini (Anda masih perlu eval di atas sehingga
eww
buffer baru diberi nama unik).sumber
rename-uniquely
, yang efektif jika saya aktifkaneww
dari buffer non-eww. Namun, jika saya berada di buffer baru, kait tidak menyala, karena mode tidak berubah. Setidaknya saya pikir itulah yang terjadi.M-x eww
dari buffer non-eww. Tidak jelas apakah Anda berniat untuk memiliki bibit eww buffer baru saat dalam buffer eww. Saya akan memperbarui solusinya jika saya menemukan sesuatu. Saya juga sedang membangun master terbaru.eww
fungsi seperti yang terlihat dalam kode sumber:(pop-to-buffer-same-window (if (eq major-mode 'eww-mode) (current-buffer) (get-buffer-create "*eww*")))
.Tampaknya
eww
dirancang untuk menghindari perilaku ini. Fungsi inieww-new
,, dapat dipanggil ketika buffer eww baru diinginkan:sumber
Memperbarui
Perilaku ini dibahas dalam bug # 34374 dan bergabung pada 2019-02-15 .
Jadi dalam Emacs 27, memanggil
eww
dengan argumen awalan memberitahu untuk menggunakan buffer baru alih-alih menggunakan kembali*eww*
buffer default .Iya dan tidak. Fungsionalitas serupa ditambahkan di Emacs 26 sebagai perintah
eww-open-in-new-buffer
, yang terikat M-RETpada buffer EWW secara default:Satu-satunya masalah adalah bahwa, pada saat penulisan, perintah ini terbatas hanya berfungsi di buffer EWW. Secara khusus, ia melempar
user-error
jika tidak ada tautan yang berarti ditemukan di titik, sebagaimana ditentukan oleh opsi penggunaeww-suggest-uris
:Batasan lebih lanjut dari perintah ini adalah tidak meminta pengguna untuk URL atau istilah pencarian, seperti yang
eww
akan dilakukan oleh perintah .Berikut adalah contoh sederhana tentang bagaimana Anda dapat menjembatani perbedaan antara
eww
daneww-open-in-new-buffer
:Apa yang dilakukan adalah panggilan pertama
interactive
spesifikasi darieww
, yang petunjuknya untuk URL atau istilah pencarian seperti biasa. Ini kemudian memanggileww-open-in-new-buffer
dengan URL input sebelumnya atau istilah pencarian sebagai satu-satunya URI yang disarankan, sehingga perintah tidak membuat ulah.Perintah ini akan berfungsi baik di dalam maupun tanpa buffer EWW, sehingga dapat bertindak sebagai pengganti drop-in untuk default
eww-open-in-new-buffer
, jika Anda lebih suka:Apa pun itu, Anda dapat memintanya dari mana saja M-x
my-eww-new-buffer
RETatau mengikatnya secara global ke kunci yang lebih nyaman.sumber
Saya memperpanjang potongan RP Dillon sedikit . Yang menjadikannya kandidat yang bagus untuk membuat alias seperti
(defalias 'w #'af/eww)
dan membuka eww menggunakan fungsi di bawah ini. Satu-satunya perbedaan adalah pemeriksaan bersyarat jika*eww*
buffer sudah ada, maka yang baru dibuat, jika bukan yang aslieww
dipanggil.sumber
Saya menggunakan Emacs 25.1 dan
eww-open-in-new-buffer
fungsinya tidak ada. Jadi saya harus mengganti nama eww buffer yang saya masuki, biasanya dengan beberapa judul mudah tentang halaman yang sayaeww
masuki , dan menelepon lagi dari buffer lain yang dibuka di Emacs (dengan contoh dari buffer-mode buffer, atau buffer yang dired, dari awal, dokumen lain, apa saja) membawaku ke buffer eww lain. Akhirnya saya pergi denganS
ke daftar buffer eww untuk memilih dari sana. Aneh tapi berhasil, dan dengan beberapa langkah. Saya bertanya-tanya mengapaeww-new
tidak built-in dari awal. Tentu saja lebih bersih dengan kode di atas, saya akan mencobanya. Saya senang melihat bahwa fungsi tersebut ditambahkan di Emacs 26.sumber
eww
dengan argumen awalan sekarang membuat buffer EWW baru; lihat jawaban saya di atas.M-x rename-uniquely
.